Bonjour à tous,
J'ai deux utilisateurs qui travaillent sur la même application et dans le même module. Il y en a un qui supprime un objet. Si l'autre utilisateur supprime à son tour le même objet, j'obtiens le message d'erreur suivant:
J'ai mis une méthode de vérification pour savoir si l'entité à déjà été supprimé avec la méthode "entityManager.find(objet)", mais elle renvoie toujours vrai. Du coup, quand j'arrive à la méthode entityManager.flush(), j'ai l'erreur ci-dessus.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 11:31:57,861 ERROR [AbstractFlushingEventListener] Could not synchronize database state with session org.hibernate.StaleStateException: Batch update returned unexpected row count from update [0]; actual row count: 0; expected: 1 at org.hibernate.jdbc.Expectations$BasicExpectation.checkBatched(Expectations.java:61) at org.hibernate.jdbc.Expectations$BasicExpectation.verifyOutcome(Expectations.java:46) at org.hibernate.jdbc.BatchingBatcher.checkRowCounts(BatchingBatcher.java:68)
Voici le code de la méthode de suppression:
Any idea?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 public void supprimer(final objetClass objet) { if(entityManager.find(Objet.class, Objet.getId()) != null) { entityManager.remove(Objet); } entityManager.flush(); }
Partager