j'ai moi aussi mis en place la gestion des transactions avec les annotations et quelque chose m'intrigue.

j'ai une classe service, de mémoire :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
@Transactional
ServiceImpl implements Service {
   public Set getFiles(){...};
   public Set getNotes(){...};
   public Set getUrls(){...};
   public Set getTodos(){...};
}
puis une servlet dans laquelle je fait appel aux méthodes de ma classe service, donc qq chose comme ça :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
doGet(HttpServletRequest request, HttpServletResponse response){
 
getFiles();
getNotes();
getUrls();
getTodos();
 
}
j'ai remarqué qu'à chaque appel d'une méthode get une session est ouverte puis refermé ce qui fait que j'ai une succession d'ouvertures et de fermetures de sessions. Ne connaissant pas très bien la gestion des transactions je me demande si c'est quelque chose de gênant. ça me parait pas terrible.
Après quelques recherches j'ai trouvé le Open Session in View pattern qui ouvre une session pour toute la durée de la requête (la requete http prise en charge par la servlet) et la ferme à la fin. Je n'arrive pas à le mettre en place car je ne dispose pas d'une sessionFactory mais d'un transactionManager.
Est-ce qu'il y a un moyen d'obtenir le même résultat par configuration du transactionManager?

Merci pour toute aide, je suis à la recherche des meilleurs pratiques pour gérer les transactions dans une appli web