Gestion des exceptions en JTA / JPA
Sebastien Cesbron <[email protected]> Thu, 24 Mar 2011 12:26:42 +0100
| Newsgroups | gmane.comp.java.french.general |
|---|---|
| Message-ID | <[email protected]> |
Salut la liste J'ai discuté avec des collègues de problèmes de gestion des exceptions avec JTA / JPA et vu que ça fait un petit moment que je n'ai pas pratiqué, je me disais qu'il y aurait peut être des gens plus éclairés que moi dans la liste. On a une architecture en couches avec globalement une couche Service, une couche métier et une couche DAO. Les services gèrent les transactions avec des annotations (spring en l'occurence). Les DAO gèrent la mise en base via un outil de mapping (toplink natif chez nous mais ça pourrait être du JPA). On part sur un cas simple de traitement d'une violation de contrainte d'unicité sur le nom d'une personne lors de l'insert en base. En jdbc, j'appelle le dao, l'insert est fait et le dao renvoie l'exception qui peut être traitée précisément (on sait que c'est sur la personne car on appelle le dao personne) et convertie en quelque chose de plus métier. Avec un outil de mapping, le dao ne lève pas d'exception car lors de l'insert le flush en base n'est pas fait, c'est lors du commit au niveau de l'annotation spring sur le service que l'exception va être levée. Comment gérer cela proprement pour qu'au final celui qui appelle le service ait une exception métier claire et précise ? Les personnes avec qui je discute et qui sont habituées à faire de jdbc, aurait tendance à forcer un flush en sortie de chaque méthode d'écriture d'un DAO. L'utilisation du flush de cette manière est déconséillée : est-ce uniquement un pb de performance ou bien y a t'il autre chose ? Est-ce que certains d'entre vous ont mis en place cela ? si oui avez vous rencontrés des problèmes ? Sinon je verrais bien un convertisseur d'exception au niveau d'un intercepteur au dessus de la couche service ? Est-ce que certains ont déjà fait cela ? quels problèmes ? Voilà ma question existentielle du jour si certains ont un avis je suis preneur A+ Seb