3 votes

Spring & JDBC Transactions : Comment assurer le niveau d'isolation SERIALIZABLE dans un objet DAO ?

Les transactions sont définies au niveau du service, comme c'est généralement le cas.

Mais il arrive qu'une méthode DAO nécessite un niveau d'isolation plus élevé, SERIALISABLE.

Mais le fait de savoir si le niveau d'isolation SERIALIZABLE est nécessaire est encapsulé dans la méthode DAO, la méthode de service n'a pas besoin de le savoir.

Comment puis-je faire respecter le niveau d'isolation SERIALIZABLE au niveau de la méthode DAO ? Je n'arrive même pas à trouver un moyen d'identifier ce que le niveau d'isolement est au printemps.

1voto

les2 Points 3854

La couche service définit généralement la sémantique transactionnelle.

Mais ... vous pouvez ajouter le annotation suivante pour atteindre le niveau d'isolation sérialisable sur la méthode d'implémentation DAO pour obtenir cet effet :

@Transactional(isolation=Isolation.SERIALIZABLE,propagation=Propagation.MANDATORY)

Le caractère MANDATORY permet à la méthode DAO de ne pas créer de transaction si aucune n'existe. Cela forcera toutes les invocations à démarrer à partir d'une méthode de service. Vous pouvez changer cela si vous le souhaitez.

Faites-moi savoir comment ça se passe.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X