Bonjour,
J'ai un petit problème sous hibernate avec le set qui est vide lorsque j'y accède.
J'ai 2 yables SQL :
celle sur laquelle le mapping est réalisée qui s'apelle users et qui contient des champs : id_user, nom , prenom, identifiant, password, email
et une seconde dont voici le code :
CREATE TABLE droit_utilisateur(
id_droit INTEGER auto_increment PRIMARY KEY,
idDroitUser INTEGER NOT NULL,
champ VARCHAR(20));
ALTER TABLE droit_utilisateur
ADD CONSTRAINT FK_idDroitUser FOREIGN KEY (idDroitUser) REFERENCES users (id_user)
ON DELETE CASCADE
ON UPDATE CASCADE;
Dans mon mapping xml, j'ai mis :
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping SYSTEM "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="app.businessEntities.mappings.User" table="users">
<id name="id_user" column="id_user" type="java.lang.Long" unsaved-value="0">
<generator class="increment"/>
</id>
<property name="firstName" column="firstName" type="java.lang.String"/>
<property name="lastName" column="lastName" type="java.lang.String"/>
<property name="login" column="login" type="java.lang.String"/>
<property name="password" column="password" type="java.lang.String"/>
<property name="email" column="email" type="java.lang.String"/>
<set name="droitsUtilisateurs" lazy="true">
<key column="FK_idDroitUser"/>
<one-to-many class="app.businessEntities.mappings.User"/>
</set>
</class>
</hibernate-mapping>
J'ai ma classe User.java qui contient les données et les accesseurs dont entre autre :
private Collection droitsUtilisateurs = new HashSet();
public Collection getDroitsUtilisateurs() {
return droitsUtilisateurs;
}
public void setDroitsUtilisateurs(Collection droitsUtilisateurs) {
this.droitsUtilisateurs = droitsUtilisateurs;
}
Dans mon programme maintenant, quand je veux récupérer ma collection, cela me met une erreur du type :
org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: app.businessEntities.mappings.User.droitsUtilisateurs - no session or session was closed
Si quelqu'un a une idée pour mon problème je suis preneur
Merci.
Partager