HibernateTemplate.saveOrUpdate() -> NonUniqueObjectException
Bonjour,
j'ai le code suivant (appellé dans une transaction) qui me produit une NonUniqueObjectException.
Je crée un objet Tome. Si il n'existe pas déjà en BD je fais appel à hibernateTemplate.save(), si il existe déjà je fais appel à saveOrUpdate().
Seulement voilà, dans le cas du saveOrUpdate() j'obtiens une NonUniqueObjectException et je n'arrive pas à comprendre pourquoi.
En aucun cas je ne récupère le tome existant de la BD avant de faire appel à createTome(), donc je ne vois pas comment je pourrais avoir 2 objets de type Tome référencant la même entité.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
|
public void createTome(String label) {
tome = new Tome();
tome.setLabel(label);
saveTome(tome)
}
public void saveTome(Tome tome) {
String existingTomeId = exist(tome);
if ( existingTomeId != null ) {
tome.setId(existingTomeId);
hibernateTemplate.saveOrUpdate(tome); // --> NonUniqueObjectException
}
else {
hibernateTemplate.save(tome);
}
}
public String exist(Tome tome) {
Tome existingTome = null;
List<Tome> list = hibernateTemplate.find("from Tome where label = ?", tome.getLabel());
if (list.size != 0) {
existingTome = list.get(0);
}
return existingTome.getId();
} |
Merci d'avance pour toute aide ;)