Bonjour,
je migre un vieux truc vers des choses un peux plus Java EE comme nottement jpa.
C'est à la a base une application de type JSF 1.2 avec du hibernate derrière.
La pratique, jusque là, c'etait le principe de une session hibernate par requetes, avec un système type detach / merge pour garder certains bean hibernate en session.
J'ai migré le gros sous JPA, mais je me pose des questions sur les transaction. Avec hibernate je gérait ça à la main: si un action demandait un commit, on le faisait puis on continuait. Le servlet filter à la fin faisait son rollback si il n'y avait pas eu de commit.
Aujourd'gui, avec JPA j'ai la session suivante:
Des beans JSF @requestScoped
Des beans "service" @requestscoped et ayant une injection d'un entitymanager
JSF, via les bean, fait des requetes sur la base de données (get), inject les valeur recue de la requêtes (apply request value) et appelle des actions.
Comment je dois gérer les transaction? Sachant que certaines action doivent impliquer de commiter les changements dans les beans, alors que d'autres ne doivent surtout pas permettre le commit. MAIS que les changement ont eu lieu en dehors de l'appel de l'action. Exemple:
bouton "save" -> action "save" -> commit (comment le faire?)
bouton "validate" -> action "validate" -> interdire le commit.
donc comment gérer ces transaction? Je suis un peu perdu, j'ai bien peur qu'avec JTA le commit soit automatique
Partager