Bonjour tout le monde,
Au passage, cela fait super plaisir d'avoir un forum entièrement en français (excellente initiative) !
J'expose mon problème qu'à mon avis d'autres personnes ont rencontré:
- Hibernate 2.1.7
- contexte: application web, une session est créée à chaque nouvelle requête.
- J'ai un objet de type A qui possède différentes propriétés dont une pointant sur un objet de type B.
Remarque importante: A et B sont versionnés.
- Je crée dans ma base de données une "instance" de mon objet de type B appelée B1
- Dans ma page qui me sert à l'insertion d'objet de type A, je peux choisir une instance de type B. Imaginons que je choissise B1.
Si j'essaye de sauvegarder mon objet de type A, j'obtiens une exception hibernate:
[color=red][size=9]2005-06-11 22:31:56,765 [http8090-Processor25] ERROR net.sf.hibernate.impl.SessionImpl - Could not synchronize database state with session
net.sf.hibernate.TransientObjectException: object references an unsaved transient instance - save the transient instance before flushing: B[/size][/color]
Plutôt normal en fait car mon objet A1 (que j'essaye de sauvegarder) ne possède en fait que l'id de l'objet B1 (explication: je crée une instance vide de B à laquelle j'attribue l'id sélectionné) et B1 n'est pas dans la session, ...etc
La seule parade que j'ai trouvée est de recharger B1 avant de sauvegarder A1.
Existe t'il un moyen un peu plus propre de contourner ce problème ?
Merci d'avance pour vos réponses.
Did
Need help with Hibernate? Read this first:
http://www.hibernate.org/ForumMailingli ... AskForHelp
[b]Hibernate version:[/b]
[b]Mapping documents:[/b]
[b]Code between sessionFactory.openSession() and session.close():[/b]
[b]Full stack trace of any exception that occurs:[/b]
[b]Name and version of the database you are using:[/b]
[b]The generated SQL (show_sql=true):[/b]
[b]Debug level Hibernate log excerpt:[/b]