J'ai une situation où j'ai un arbre de Entities
, et un Session Bean
. Le Session Bean
persiste simplement ou fusionne les entités, et la méthode en question est marquée comme @TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
. Maintenant, dans le cas où une entité enfant ne peut pas être persistée/fusionnée en raison (par exemple) d'une violation de clé étrangère ou d'un champ non nullable manquant, la transaction est marquée dans les journaux à annuler, et un EJBException
levé. Je m'attendais à ce que toute la transaction soit annulée, mais à la place, je vois l'entité parente apparaitre dans la base de données après le retour de l'appel de bean de session EJB, malgré l'échec de l'entité enfant.EJB3/DB2 Transactions ne recule pas
Est-ce que quelqu'un d'autre a vu un comportement comme celui-ci? Informations complémentaires:
Server: Glassfish
Persistence manager: Toplink
Connection Pool: DB2 Universal Driver XA compliant driver.
Merci.
Pouvez-vous montrer le code qui lève l'exception? –