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:

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)
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.

Voici le code de la méthode de suppression:
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();
  }
Any idea?