Bonjour,
Je me suis récemment cassé la tête sur une succession d'événements sensés écrire à la suite des autres dans une table MA_TABLE:
1)appel dans le DAO d'une procédure qui écrit notamment dans MA_TABLE
2)fonction qui ajoute une ligne dans MA_TABLE dans certains cas en faisant appel createObject)
où em est un EntityManager.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 public void createObject(Object object) { try { em.persist(object); } catch (LazyInitializationException lie) { em.merge(em.merge(object)); } }
Sauf que 2) avait bien l'air de faire ce que je voulais mais j'avais beau regarder ma table, rien n'apparaissait.
Alors j'ai tenté de mettre des @transactional au-dessus des fonctions mises en jeu --> sans succès
Et j'ai finalement décidé de faire comme un commit avec la fonction flush de EntityManager --> ça marche.
J'ai donc résolu mon problème mais
-c'est moche
-je ne comprend pas bien les notions en jeu et la façon propre de faire (c'est moche, bis)
Merci aux spécialistes pour leurs explications.
Partager