Je travaille sur le développement d'une application web avec Spring Framework 3.0.5 et Hibernate Framework 3.6 et j'ai quelques questions à lui poser. J'utilise Transaction Management avec des annotations. (@Transactional) et mon DAO est écrit sur l'API Hibernate 3.Gestion des transactions avec Spring, Hibernate et mySQL, questions supplémentaires (utilisation d'hibernate sans transactions ..)
1) Comment puis-je remarquer qu'une transaction est annulée? (Je veux dire, je dois attraper des exceptions? Ou peut-être vérifier après, si tout a fonctionné? @ Entourant @ transactional-méthodes avec try-catch ne me semble pas une bonne chose)
2) Est-il correct que la gestion des transactions avec @transactional ne fonctionne pas (pas de restauration) quand j'attrape l'exception? (quand j'entoure l'appel d'une méthode transactionnelle avec try-catch)
3) Est-il possible d'utiliser Hibernate SANS utiliser les transactions? donc je pourrais utiliser Spring avec Hibernate mais sans Transaction Management? Si il n'est pas possible d'utiliser Hibernate sans utiliser de transactions, cela signifie que mon système de gestion de base de données doit toujours supporter des moteurs transactionnels (comme InnoDB). Je ne peux pas utiliser une table myISAM avec Hibernate alors? Ce serait un gros inconvénient d'hiberner alors !?
merci :-)
Merci! Je voudrais juste comprendre pourquoi les gens ne se soucient généralement pas si une transaction est annulée ou non. Par exemple, lorsqu'un utilisateur souhaite s'inscrire et que cela ne fonctionne pas, la transaction est annulée. Mais puisque je ne le saurai pas, je n'informerai pas l'utilisateur. Je ne pense pas que ce soit une bonne stratégie. Je vais jeter un oeil à "TransactionAspectSupport.currentTransactionStatus(). IsRollbackOnly()", comme vous le recommandiez. Je voudrais aussi savoir pourquoi il y a un article sur la page Web hibernates qui décrit comment accéder aux données sans transaction, s'il n'est pas possible d'utiliser hibernate sans transactions :-) – nano7
C'est l'article que j'ai mentionné. http://community.jboss.org/wiki/Non-transactionaldataaccessandtheauto-commitmode Peut-être ai-je mal compris quelque chose ...? Merci pour l'instant! :-) – nano7
@ nano7: S'il n'y a pas d'exception, la transaction n'a pas été annulée. S'il y a une exception, la transaction est annulée et l'exception se propage, jusqu'à ce qu'elle soit gérée dans la couche de présentation, où l'utilisateur peut être informé. Pas besoin de tester la restauration s'il n'y a pas d'exception. –