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)
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));
		}
	}
où em est un EntityManager.

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.