Bonjour à tous,

J'ai un petit souci en ce moment avec hibernate. J'utilise la version 3 lié à une base de données mysql 5.

Le problème est que lorsque j'insère un objet en base de données son id n'est pas mis à jour. Or à ce que j'ai compris cela devrait se faire non? Voici mon code d'insertion:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
Speaker j = new Speaker("Jacky");
		Event e = new Event("Event 1", j);

		Transaction tr = null;
		Session session = null;
		try {
			session = getSessionFactory().openSession();
			tr = session.beginTransaction();
			//session.save(j);
			session.saveOrUpdate(e);
			session.flush();
			tr.commit();
			session.refresh(e);
			log.debug("ID Event = "+ e.getId());
			e = (Event)session.load(Event.class, e.getId());
			log.info(e);
		} catch (HibernateException ex) {
			if (tr != null)
				tr.rollback();
			throw ex;
		} finally {
			if (session != null)
				session.close();
		}
		factory.close();
L'insertion se fait bien. Malheureusement lorsque je veux récupérer l'objet que je viens d'insérer (lignes en rouge) hibernate n'y arrive pas parce que l'id est à null. Comment faire?

Mon id est généré grâce à une stratégie native. J'ai essayé avec identity sans succès.... Je ne pense pas que ca vienne de là.

Merci d'avance pour votre aide.

EDIT: A ce que j'ai pu constater, l'id est retourné par la méthode save (pas par la méthode saveOrUpdate) mais hibernate met normalement à jour de lui-même l'id dans l'objet persisté non?