Bonjour,
Je souhaite savoir comment lors de l'insertion en base de données, on peut récupérer l'IDentifiant générer?
(Cette identifiant correspond à un attribut de ma classe).
Mici,
Yoko
Version imprimable
Bonjour,
Je souhaite savoir comment lors de l'insertion en base de données, on peut récupérer l'IDentifiant générer?
(Cette identifiant correspond à un attribut de ma classe).
Mici,
Yoko
Un exemple
De manière general, tu recuperes une reference sur l'objet que tu as crée et sur lequel tu peux faire toutes les manips que tu veuxCode:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 public Long createVariable(String value, String description) throws HibernateException { Variable variable = new Variable(); variable.setValue(value); variable.setDescription(description); checkVariable(variable); Session session = getCurrentSession(); Transaction tx = null; try { tx = session.beginTransaction(); session.persist(variable); tx.commit(); } catch (HibernateException hb) { if (tx != null) tx.rollback(); throw hb; } finally { session.close(); } return variable.getID(); }
Merci pour ta réponse,
par rapport au mapping, y a t - il un attribut particulier à spécifier pour l'ID dans le fichier HBM?
"native", "assigned"...?
Yoko,Code:
1
2
3
4 <id name="code" type="int"> <column name="code_canal" /> <generator class="native" /> </id>
Tu peux récupérer l'ID généré lors de la sauvegarde ! ;)
Code:
1
2
3
4
5 DomesticCat robert = new DomesticCat(); robert.setColor(Color.WHITE); robert.setSex('M'); robert.setName("Robert"); Long generatedId = (Long) sess.save(robert);
Pour l'ID, tout dépend de la manière dont tu veux qu'il soit généré. Si tu veux laisser le travail à MySQL, met "native" ou si tu veux vraiment être précis "identity". Hibernate utilisera l'auto-increment défini par ta table.
"Assigned" est utilisé pour la gestion applicative de l'identifiant ... donc tu aurais ce dernier AVANT la sauvegarde, chose que tu ne veux pas apparemment.
"Hilo", quant à lui, est un "algorithme" de création d'identifiant mais il nécessite une table supplémentaire en BDD, chose par forcément appréciée.
Nikel,
Merci pour ces réponses.
On peut pas être plus clair.