Bonjour à tous,
Voilà j'ai un petit problème avec Hibernate en mode LAZY. Je vous explique sur un exemple plus simple que mon projet actuel (mais l'erreur est aussi présente dans cet exemple, je l'ai testé :p) :
Je crée un application JavaWeb (je suis sous NetBeans 6.7.1) avec le framework Java Server Faces.
J'ai un bdd avec deux tables : une voiture et une marque. Il y a bien sûr une foreign key qui va de marque dans voiture à idmarque dans marque.
Je fais : Create Entity Classes from Database. Là je choisi ma connection préalablement créé, je crée ma PU en mettant Hibernate et puis ca me fait mes classes.
Ensuite je fais : Create JSF Pages from Entity Classes.
Et ca marque bien... Sauf quand je fais un Show ou un Edit dans marque. En fait il a un problème avec la clé etrangère (le JOIN) pour créer la collection de voiture...
Voici mon erreur :
Pour voiture j'ai :exception
javax.servlet.ServletException: failed to lazily initialize a collection of role: Entity.Marque.voitureCollection, no session or session was closed
root cause
org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: Entity.Marque.voitureCollection, no session or session was closed
Pour marque j'ai :@JoinColumn(name = "marque", referencedColumnName = "idmarque")
@ManyToOne(optional = false)
private Marque marque;
Avez vous une idée de la source du problème ?! J'ai cherché toute la journée hier en essayant de jouer sur la requête (en utilisant le LEFT JOIN ou les différent fetch) mais rien a faire...@OneToMany(cascade = CascadeType.ALL, mappedBy = "marque")
private Collection<Voiture> voitureCollection;
Merci d'avance !
Partager