Bonjour,

Mon problème est comment utiliser "saveOrUpdate" avec un identifiant généré automatiquement.

Je m'explique avec un exemple :
classe :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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.