0

J'essaye d'implémenter le verrouillage optimiste en utilisant JPA. J'ai lu que l'ajout d'un champ supplémentaire, version avec @Version annotation peut être utilisé pour appliquer le verrouillage optimiste implicite. Après l'implémentation, je serai capable d'empêcher les mises à jour perdues si plusieurs utilisateurs tentent de mettre à jour la même entité. Si une mise à jour est faite et si le champ version ne correspond pas au champ version de l'entité, , alors aucune ligne n'est mise à jour, empêchant ainsi la mise à jour perdue. J'utilise la prise en charge de la gestion Spring Transaction où pour la mise à jour, tout ce que j'ai à faire est de mettre à jour les champs Entity et la mise à jour de base de données est prise en charge par le gestionnaire de transaction Spring.Comment savoir si l'entité persistante a été mise à jour ou non? Spring Transaction Management

Ma question est la suivante: Comment puis-je savoir si la mise à jour effectuée pour un utilisateur particulier a réussi?

Répondre

0

OptimisticLockException sera lancé si une opération a échoué - si une autre transaction a déjà modifié l'entité. discussions connexes pour plus de détails:

+0

Merci pour la réponse. Oui, l'exception OLE sera lancée. Mais ma question était, comme j'essaye d'employer la gestion de transaction de ressort, ainsi je n'exécute pas la mise à jour ou commente explicitement. Alors, comment puis-je attraper cette exception et prendre les mesures appropriées? –

+0

Selon http://stackoverflow.com/questions/17203452/how-to-catch-optimisticlockexception-in-jpa il peut être manipulé en dehors de la méthode invoquée ou appeler entityManager.flush() explicitement à l'intérieur. – Justas