Я использую Wildfly 10 вместе с Deltaspike и имею проблемы, сохраняющие сущность. Проблема возникает позже, когда я пытаюсь обновить его или сохранить другой объект, ссылающийся на него. Когда я пытаюсь обновить его, я получаю исключение, указывающее, что сущность не управляется. Если я пытаюсь сохранить другой объект, ссылающийся на него, то есть когда я получаю исключение, указывающее, что объект находится в переходном состоянии.Wildfly - deltaspike - сделка не совершена?
Я использую JTA, и сущность должна была быть передана ранее, поскольку она была сохранена в другом вызове метода.
Я попытался использовать транзакции, управляемые контейнером, и транзакции, управляемые Bean. В этой заметке, похоже, что только файл apache-deltaspike.properties влияет на его изменение. Я также вручную включил перехватчик транзакций, но я не верю, что это имеет значение, потому что оно включено с явным активированием в beans.xml или без него. Аннотации @Transactional, по-видимому, не фиксируют транзакцию (я тестировал ее с помощью различных аргументов, и я ожидал бы другого исключения, но просто пошел один и тот же).
@Transactional(Transactional.TxType.REQUIRES_NEW)
//@Transactional(Transactional.TxType.NEVER)
@Loggable
protected void startSession() {
entity = new Entity("something");
LOGGER.warn("entity:" + entity);
entityRepository.saveAndFlushAndRefresh(entity);
LOGGER.warn("end - entity:" + entity.getId());
}
Операторы журнала показывают, что идентификатор равен 0, не установлен. Теперь, если я запрашиваю последовательность, я вижу это на 189 от удара так много раз ...
Фактическое исключение, когда я пытаюсь сделать:
entityRepository.refresh(entity);
То есть, когда я получаю исключение, указывающее, что объект не управляется. Как я указал, я вижу, что Transaction Interceptor активируется в соответствии с журналами.
Любые идеи?