Nous sommes en train de repenser notre pile technologique et voici nos choix (nous ne pouvons pas vivre sans Spring et Hibernate en raison de la complexité de l'application). Nous passons également de J2EE 1.4 à Java EE 5.
Pile technologique
- Java EE 5
- JPA 2.0 (je sais que Java EE 5 supporte seulement JPA 1.0 mais nous souhaitons utiliser Hibernate comme fournisseur JPA)
- Hibernate 3.6.0 (Nous avons déjà beaucoup de fichiers hbm avec des types personnalisés etc. donc nous ne voulons pas les migrer pour le moment vers JPA. Cela signifie que que nous voulons que les deux mappings jpa/hbm fonctionnent ensemble, d'où l'utilisation d'Hibernate comme le fournisseur JPA au lieu d'utiliser le fournisseur par défaut fourni avec App Server)
Le problème est que je veux m'en tenir aux transactions locales mais que les autres membres de l'équipe veulent utiliser JTA. Je travaille avec J2EE depuis 9 ans et j'ai entendu à maintes reprises des personnes suggérer de s'en tenir aux transactions locales si je n'ai pas besoin de commits en deux phases. Ce n'est pas seulement pour des raisons de performance, mais le débogage/le dépannage d'une transaction locale est beaucoup plus facile que celui d'une JTA (même si JTA ne fait qu'un seul commit de phase quand c'est nécessaire).
Ma suggestion est d'utiliser la gestion déclarative des transactions de Spring + les transactions locales (HibernateTransactionManager). au lieu du conteneur JTA
Je veux être sûr que je suis paranoïaque ou que mon point de vue est valable. J'aimerais savoir ce que pense le reste du monde de Java EE. Ou bien, s'il vous plaît, indiquez-moi un article approprié.