saveOrUpdate avec unicité
Bonjour,
Mon problème est comment utiliser "saveOrUpdate" avec un identifiant généré automatiquement.
Je m'explique avec un exemple :
classe :
Code:
1 2 3 4 5 6
| public class Person {
private int person_id;
private String nom;
private int age;
// avec les getters et setters
} |
mapping :
Code:
1 2 3 4 5 6 7
| <class name="Person" table="Person">
<id name="person_id" type="int">
<generator class="increment"/>
</id>
<property name="nom" type="string" />
<property name="age" type="int" />
</class> |
Le code suivant insère bien dans ma base de données le nouvel objet en lui attribuant un id :
Code:
1 2 3 4
| Person p = new Person();
p.setNom("nom");
p.setAge(20);
session.saveOrUpdate(p); |
Mon problème vient que si je réitère ce code, soit il insère à nouveau l'objet mais sous un autre id, soit il lève une exception si j'ai indiqué l'unicité de nom.
Donc est il possible de rajouter quelque chose pour que la mise à jour se fasse automatiquement si un objet du même nom se trouve dans la base.
Je cherche à éviter de questionner la base pour vérifier si un objet du même nom existe déjà ou d'insérer des try/catch partout.
Je vous remercie si vous avez des idées ou me dire clairement que cela n'est pas possible.