Bonjour,
Nous avons actuellement une table mise à jour par deux process différents. Cette table est définie avec un mapping "optimistic-lock" (une colonne de version dans la table).
Sur un update() + flush() dans un des process, il arrive que l'exception "StaleObjectStateException" soit levée: normal car mise à jour par l'autre process.
J'essaye alors, dans ce cas, de faire un refresh() de l'objet (qui remonte les informations correctes de la base de données y compris le numéro de version), de le mettre à jour après récupération des modifications éventuelles et de le sauver de nouveau par un update(). Mais l'exception "StaleObjectStateException" est de nouveau levée.
///
homme.setAge(42);///
session.update(homme);
try
{
session.flush();}
catch (StaleObjectStateException e)
{
session.refresh(homme);}
/*
Récupération des valeurs éventuellement importantes sur homme faites par l'autre process*/
homme.setAge(42);
session.update(homme);
session.flush();
Est-ce que j'ai manqué quelque chose ou pas compris le fonctionnement du refresh() /update()?
Merci d'avance
Partager