J'avais utilisé @Transactional
annotations dans ma couche Service. Mais pour résoudre une erreur due à Lazy Loading in View, j'ai dû utiliser Open Session in View Filter
. Après cela, sans l'utilisation de @Transaction elle-même une session est ouverte et la transaction commence. Cela signifie-t-il que @Transactions n'est pas nécessaire? Comment les transactions et les roll-backs seront-ils traités, puis dans les couches de service?Ouvrir une session dans View vs @Transactional
Répondre
The javadoc explique:
Ce filtre permet Hibernate Sessions disponibles via le thread en cours, qui sera détecté automatiquement par les gestionnaires de transactions. Il convient aux transactions de couche service via HibernateTransactionManager ou JtaTransactionManager ainsi que pour l'exécution non-transactionnelle (si elle est configurée de manière appropriée). REMARQUE: Ce filtre ne vide pas la session Hibernate par défaut, avec le mode Flush défini sur FlushMode.NEVER. Il suppose d'être utilisé en combinaison avec les transactions de la couche service qui s'occupent du vidage: Le gestionnaire de transactions actif changera temporairement le mode de vidage en FlushMode.AUTO pendant une transaction en lecture-écriture, avec le mode de vidage réinitialisé à FlushMode.NEVER à la fin de chaque transaction. Si vous avez l'intention d'utiliser ce filtre sans transactions, pensez à changer le mode de vidage par défaut (via la propriété "flushMode").
- 1. OpenSessionInView vs. Transactional? (Spring/Hibernate/JPA)
- 2. Est-ce que @Transactional ouvre une session et la lie?
- 3. ViewController vs. View
- 4. View (model) vs View ("viewName", modèle)
- 5. View() vs. PartialView()
- 6. Ouvrir EntityManager dans View dans JPA pour Java EE
- 7. Comment ouvrir une URL UITextView dans UI Web View?
- 8. Comment ouvrir Google Street View dans UIWebView?
- 9. Contrôleurs Modal View vs Orientation dans monotouch
- 10. OpentransactionPerView au lieu @Transactional
- 11. iAd View vs personnalisé ViewController
- 12. Open Session in View Autre
- 13. Comment ouvrir une fenêtre dans une session X11 différente?
- 14. ne pas ouvrir une session à catalina.out
- 15. LazyInitializationException Dans un @Transactional Méthode
- 16. Rediriger pour ouvrir une session stratégie page
- 17. Accéder aux données avec "$" Ouvrir une session
- 18. Add-in VS pour ouvrir une solution
- 19. Truncate Slow Query Ouvrir une session MySQL
- 20. Comment ouvrir une session avec Facebook?
- 21. Session PHP vs Classe
- 22. cache Vs session
- 23. session vs cache
- 24. AnswerSingle Ouvrir une session dans Sharepoint 2010 sans ADFS
- 25. Nested @Transactional
- 26. Stateful Session Bean vs Stateless Session Bean
- 27. Ouvrir la session avec l'ID
- 28. @Transactional ou Non
- 29. Comment ouvrir un nouveau View from ListView
- 30. hibernate Ouvrir la session dans la vue
ne pouvait pas comprendre. cela signifie-t-il que je ne devrais pas utiliser @Transactional dans la couche de service. Pouvez-vous expliquer dans un meilleur sens ou peut-être un lien –
Non. Cela signifie que vous devriez coder votre couche de service comme d'habitude, en utilisant @Transactional comme d'habitude. La différence est que la session restera ouverte même après que la transaction a été validée. –