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