IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Hibernate Java Discussion :

Problème avec une liaison entre table


Sujet :

Hibernate Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    130
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2007
    Messages : 130
    Points : 68
    Points
    68
    Par défaut Problème avec une liaison entre table
    Bonjour
    J'ai une classe groupe et une classe user, un user peut appartenir a plusieurs groupe et un groupe peut avoir plusieur utilisateur
    voila mon mapping de mes classes
    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
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
    <hibernate-mapping package="com.cmsspring.usermanagement.bean">
    	<class name="Groupe" table="cms_groups" lazy="false">
     
     
    		<id name="id" column="group_id" type="integer">
    			<generator class="native"/>
    		</id>
    		<property name="nom" column="group_nom"/>
    		<property name="statut" column="group_statut"/>
     
    		<set name="membres" table="cms_users_groups">
    			<key column="group_id"/>
    			<many-to-many column="user_id" class="User"/>
    		</set>
     
    		<many-to-one name="createur"
    			column="groupe_createur"
    			unique="true"
    			not-null="true"/>
    	</class>
    </hibernate-mapping>
    et ma classe user
    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
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
    <hibernate-mapping package="com.cmsspring.usermanagement.bean">
    	<class name="User" table="cms_users" lazy="false">
    		<id name="id" column="user_id" type="integer">
    			<generator class="native"/>
    		</id>
    		<property name="nom" column="user_NOM"/>
    		<property name="prenom" column="user_PRENOM"/>
    		<property name="login" column="user_LOGIN"/>
    		<property name="password" column="user_PASSWORD"/>
    		<property name="email" column="user_EMAIL"/>
    		<property name="actif" column="user_ACTIVATION"/>
    		<property name="creation" column="user_DATECREATION"/>
    		<property name="derniereConnexion" column="user_DERNIERLOG"/>
    		<property name="langue" column="user_LANGUE"/>
     
    		<set name="groupe" table="cms_users_groups">
    			<key column="user_Id"/>
    			<many-to-many column="group_id" class="Groupe"/>
    		</set>
    	</class>
    </hibernate-mapping>
    quand je fais un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.getHibernateTemplate().load(Groupe.class, id);
    toutes les informations sont bonne sauf ma hastable de groupe
    Quand je regarde il me met
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Error	Exception occurred: com.sun.jdi.InvocationException occurred invoking method..
    Quelqu'un sait d'ou ca vient ??
    Merci d'avance

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    548
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 548
    Points : 635
    Points
    635
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Error	Exception occurred: com.sun.jdi.InvocationException occurred invoking method..
    Il faudrait que tu envoie la suite pour avoir plus de détails.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    130
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2007
    Messages : 130
    Points : 68
    Points
    68
    Par défaut
    En faite j'ai cette erreur quand je suis en mode debbug et que je regarde la valeur

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    130
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2007
    Messages : 130
    Points : 68
    Points
    68
    Par défaut
    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    2007-10-27 10:13:19,812 INFO [com.cmsspring.usermanagement.controller.GroupeInscriptionFormController] - <Entering controller 2>
    2007-10-27 10:13:19,812 ERROR [org.hibernate.LazyInitializationException] - <failed to lazily initialize a collection of role: com.cmsspring.usermanagement.bean.Groupe.membres, no session or session was closed>
    org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: com.cmsspring.usermanagement.bean.Groupe.membres, no session or session was closed
    	at org.hibernate.collection.AbstractPersistentCollection.throwLazyInitializationException(AbstractPersistentCollection.java:358)
    	at org.hibernate.collection.AbstractPersistentCollection.throwLazyInitializationExceptionIfNotConnected(AbstractPersistentCollection.java:350)
    	at org.hibernate.collection.AbstractPersistentCollection.initialize(AbstractPersistentCollection.java:343)
    	at org.hibernate.collection.PersistentSet.add(PersistentSet.java:189)
    	at com.cmsspring.usermanagement.bean.Groupe.addMembres(Groupe.java:21)
    	at com.cmsspring.usermanagement.controller.GroupeInscriptionFormController.onSubmit(GroupeInscriptionFormController.java:41)
    	at org.springframework.web.servlet.mvc.SimpleFormController.processFormSubmission(SimpleFormController.java:267)
    	at org.springframework.web.servlet.mvc.AbstractFormController.handleRequestInternal(AbstractFormController.java:250)
    	at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)
    	at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)
    	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:857)
    	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:792)
    	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:475)
    	at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:440)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
    	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
    	at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
    	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
    	at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
    	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
    	at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
    	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
    	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
    	at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
    	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
    	at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
    	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
    	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    	at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
    	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
    	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
    	at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
    	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
    	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
    	at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
    	at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
    	at java.lang.Thread.run(Thread.java:619)

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    548
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 548
    Points : 635
    Points
    635
    Par défaut
    Cherche LazyInitializationException dans la FAQ d'Hibernate...
    Et ensuite lis cet article http://www.hibernate.org/43.html

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    130
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2007
    Messages : 130
    Points : 68
    Points
    68
    Par défaut
    Merci bcp je vais essayer je vous tient au courant

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    130
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2007
    Messages : 130
    Points : 68
    Points
    68
    Par défaut
    JE lutte toujours si quelqu'un a un exemple
    merci

  8. #8
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 274
    Points : 4 141
    Points
    4 141
    Par défaut
    Pour éviter cette erreur, il faut charger les données dont tu as besoin ultérieurement, avant que ta session ne soit fermée.
    Par défaut dans Hibernate 3, les collections sont chargées de manière lazy, c'est à dire à la demande et non pas au moment de la récupération de ton objet Groupe.

    Si tu veux charger tes users à la récupération de ton groupe, tu peux utiliser
    une requête HQL ou criteria en utilisant l'attribut fetch.
    Tu trouveras un exemple dans la doc.

Discussions similaires

  1. [MySQL-5.5] Problème avec une requête de mise à jour entre deux tables
    Par hermes1383 dans le forum Requêtes
    Réponses: 1
    Dernier message: 10/11/2014, 10h52
  2. Problème avec une liaison série
    Par Coco47 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 26/08/2009, 15h13
  3. Problèmes avec une liaison DLNA
    Par PPz78 dans le forum Apple
    Réponses: 0
    Dernier message: 25/01/2009, 09h29
  4. Pb avec une relation entre table
    Par stephane77fr dans le forum Windows Forms
    Réponses: 3
    Dernier message: 17/08/2007, 16h28
  5. Problèmes de liaisons entre tables ...
    Par Mangun dans le forum Access
    Réponses: 2
    Dernier message: 28/09/2005, 11h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo