У меня есть ситуация, когда у меня есть дерево Entities
и Session Bean
. Session Bean
просто сохраняет или объединяет сущности, и этот метод помечен как @TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
.EJB3/DB2 Операции, не откатывающиеся назад
Теперь в случае, если дочерний объект не может быть сохранен/скомпонован из-за (например) нарушения внешнего ключа или отсутствия поля с недействительным значением, транзакция помечена в журналах, подлежащих откату, и EJBException
брошен. Я ожидал, что вся транзакция будет отменена, но вместо этого я вижу родительский объект, появляющийся в базе данных после возврата вызова bean-компонента сеанса EJB, несмотря на сбой дочернего объекта.
Неужели кто-нибудь еще видел подобное поведение? Дополнительная информация:
Server: Glassfish
Persistence manager: Toplink
Connection Pool: DB2 Universal Driver XA compliant driver.
Спасибо.
Можете ли вы показать код, который выдает исключение? –