Bonjour,
Mon problème est comment utiliser "saveOrUpdate" avec un identifiant généré automatiquement.
Je m'explique avec un exemple :
classe :
mapping :
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 }
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
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>
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.
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);
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.
Partager