J'ai longtemps bossé avec Spring/Hibernate mais là je démarre avec EJB3 et je galère avec mon setup transactionnel.
Dans ma couche business j'ai un EJB stateless (donc transactionnel par défaut il me semble) dont une opération fait appel à un autre EJB Stateless (un DAO en l'occurrence). Et ce même DAO utilise l'EntityManager d'Hibernate pour persister. En gros en code, voilà ce que ça donne:
Le tout tourne dans un Weblogic 10.3 avec une datasource Oracle, et démarre sans exception. Maintenant quand je fais un test d'appel sur ma méthode business, j'ai quelques select qui sont faits sur ma DB pour récupérer par exemple l'ID généré pour mon entité dans une séquence, mais je n'ai aucun insert dans le log Hibernate.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 @Stateless public class MyServiceImpl implements MyService{ @EJB private MyEntityDao dao; public myMethod(){ MyEntity entity = new MyEntity(); dao.persist(entity); } } @Stateless public class MyEntityDaoImpl implements MyEntityDao{ @PersistenceContext protected EntityManager entityManager; public void persist(MyEntity entity){ entityManager.persist(entity); } }
Quelqu'un a une idée? Parce que là je pars à la pêche.
Partager