Transactions et traitement métier en Grails
Développer en Groovy et Grails simplifie grandement le développement d'une application Web. Passée l'étape du prototype, les simplifications apportées par Grails ne vous épargneront pas de devoir vous plonger dans les frameworks sous-jacents afin de résoudre des problématiques plus complexes.
Qu'en est-il des transactions en Grails ? Sur un sujet aussi sensible, il est important de comprendre quel est ce comportement par défaut choisi par Grails.
La documentation de Grails est un peu sommaire, ne traitant vraiment que de où et comment les déclarer mais pas vraiment de comment les utiliser. Les premiers points ne seront pas ré-expliqués ici, vous pouvez vous référer à la documentation.
L'article complet, en anglais uniquement, aborde les points suivants :
- le modèle transactionnel de Grails, par défaut dans la couche de Services
- les risques et pièges de ce modèle, à savoir un traitement métier en dehors d'une transaction ou réparti sur plusieurs transactions
- les bonnes pratiques pour gérer et déclarer les transactions en Grails
- les interactions parfois étranges entre les transactions et la session Hibernate
- une alternative au modèle transactionnel de Grails pour simplifier la gestion des transactions et supprimer les risques identifiés auparavant. L'article inclus le code nécessaire à cette modification et explique les impacts d'une telle modification.
Vous pouvez retrouver le code et les tests mentionnés dans cet article dans notre repo SVN .