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 :

Error Criteria.list() getHibernateLazyInitializer


Sujet :

Hibernate Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 62
    Par défaut Error Criteria.list() getHibernateLazyInitializer
    Bonjour,

    J'ai un souci avec l'utilisation d'Hibernate et de l'API Criteria.
    En effet, lorsque je remonte trop de données (environ 5000), Hibernate lève une exception de type :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Caused by: java.lang.NoSuchMethodError: org.jbpm.graph.def.Node.getHibernateLazyInitializer()Lorg/hibernate/proxy/LazyInitializer;
    	at org.jbpm.graph.def.Node$$EnhancerByCGLIB$$2eaffb82_2.getHibernateLazyInitializer(<generated>)
    	at org.hibernate.type.EntityType.resolveIdentifier(EntityType.java:274)
    	at org.hibernate.type.EntityType.resolve(EntityType.java:303)
    	at org.hibernate.engine.TwoPhaseLoad.initializeEntity(TwoPhaseLoad.java:113)
    	at org.hibernate.loader.Loader.initializeEntitiesAndCollections(Loader.java:842)
    	at org.hibernate.loader.Loader.doQuery(Loader.java:717)
    	at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:224)
    	at org.hibernate.loader.Loader.doList(Loader.java:2145)
    	at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2029)
    	at org.hibernate.loader.Loader.list(Loader.java:2024)
    L'exception est levée au moment de l'appel de la méthode list() qui doit me récupérer mes résultats.

    Ci joint le fichier hbm sur lequel porte le CriteriaHibernate :

    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
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
     
    <?xml version="1.0"?>
    <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate mapping DTD 3.0//EN" "packages/FtBirdiePersistenceManager/resources/hibernate-mapping-3.0.dtd">
    <hibernate-mapping>
    	<class name="com.ft.birdie.dpm.sc.model.incomingdata.IncomingDataSupervision" table="INCOMING_DATA" discriminator-value="I">
    	<id name="id" type="long">
    			<generator class="sequence">
    				<param name="sequence">incomingdata_id_seq</param>
    			</generator>
    		</id>
    		<discriminator column="discriminator" type="string"/>	
    		<version name="version" /> 
    		<property name="status" column="status" type="java.lang.String"/> 
    		<property name="incomingDataId" unique="true" not-null="true" />
    		<property name="orderId" type="long" /> 		
    		<property name="priority" type="java.lang.String"/>	
    		<property name="channel" type="java.lang.String"/>
    		<property name="customerId" type="java.lang.String"/>
    		<property name="customerName" type="java.lang.String"/>
    		<property name="orderSubmissionDate" type="java.util.Date">
                       <column name="orderSubmissionDate" sql-type="DATE"/>
                   </property>        
    		<property name="extendedFields1" type="java.lang.String"/>
    		<property name="extendedFields2" type="java.lang.String"/>
    		<property name="extendedFields3" type="java.lang.String"/>
    		<property name="extendedFields4" type="java.lang.String"/>
    		<property name="extendedFields5" type="java.lang.String"/>
    		<property name="extendedFields6" type="java.lang.String"/>
    		<property name="extendedFields7" type="java.lang.String"/>
    		<property name="extendedFields8" type="java.util.Date">
                        <column name="extendedFields8" sql-type="DATE"/>
                    </property>	
    		<property name="extendedFields9" type="java.util.Date">
                      <column name="extendedFields9" sql-type="DATE"/>
                    </property>
                    <property name="extendedFields10" type="java.util.Date">
                     <column name="extendedFields10" sql-type="DATE"/>
                    </property>
                   <property name="extendedFields11" type="java.util.Date">
                       <column name="extendedFields11" sql-type="DATE"/>
                   </property>
                   <property name="extendedFields12" type="java.util.Date">
                       <column name="extendedFields12" sql-type="DATE"/>
                    </property>
    		<property name="extendedFields13" type="long" /> 
                    <property name="extendedFields14" type="long" />
                     <property name="extendedFields15" type="long" />
                    <property name="extendedFields16" type="long" />        
     
                    <property name="extendedFields13_toString" type="java.lang.String" formula="to_char(extendedFields13)"/>
    	         <property name="extendedFields14_toString" type="java.lang.String" formula="to_char(extendedFields14)"/>
    	         <property name="extendedFields15_toString" type="java.lang.String" formula="to_char(extendedFields15)"/>
    	         <property name="extendedFields16_toString" type="java.lang.String" formula="to_char(extendedFields16)"/>
    	       <property name="incomingDataId_toNumber" type="long" formula="to_number(incomingDataId)"/>	  
    		<many-to-one name="dataType"
    			class="com.ft.birdie.dpm.opd.model.datatype.DataType" foreign-key="DT_FK_constraint3"
    			column="dataType_Id" unique="false" not-null= "true" lazy="false" />
     
        	<map name="incomingActionDocuments" cascade="all,all-delete-orphan" lazy="true" inverse="true">
    	  <key foreign-key="ID_FK_constraint" >
    		<column name="incomingData_Id" />
    	</key>
    	<map-key column="incomingActionDocumentId" type="string" />
    		<one-to-many class="com.ft.birdie.dpm.opd.model.incomingdata.IncomingActionDocument" /></map>
     
             <set name="processes" cascade="all" lazy="true" fetch="select" inverse="true">
    		<key foreign-key="Pro_FK_constraint" >
    			<column name="incomingData_Id" />
    		</key>
    		<one-to-many class="com.ft.birdie.dpm.sc.model.graph.ProcessSupervision" />
    	</set>
     
    	<set name="sequenceNodes" cascade="all" lazy="false" fetch="select" inverse="true">
    		<key foreign-key="SeqNod_FK_constraint" >
    			<column name="incomingData_Id" />
    		</key>
    		<one-to-many class="com.ft.birdie.dpm.sc.model.graph.SequenceNodeSupervision" />
    	</set>
     
    	<set name="comments"  inverse="true" cascade="all" lazy="true" fetch="select">
    		<key foreign-key="ACDSup2_F"  column="incomingdata_Id"/>
    		<one-to-many class="com.ft.birdie.dpm.sc.model.supervision.Comments" />
    	 </set>
    	 <set name="users" table="ASSIGN_ORDER_TO_USER" lazy="true" fetch="select">
    		<key column="orderId" />
    	<many-to-many class="com.ft.birdie.dpm.sc.model.supervision.Users" column="userId" />
    		</set>
    	<set name="groups" table="ASSIGN_ORDER_TO_GROUP" lazy="true" fetch="select">
    		<key column="orderId" />
    		<many-to-many class="com.ft.birdie.dpm.sc.model.supervision.Groups" column="groupId" />
    		</set>
    	</class>	
    </hibernate-mapping>
    L'exception est levée uniquement quand on ramène trop de résultats.


    Quelqu'un a-til une idée pour résoudre le problème ?

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 62
    Par défaut Changement de librairie
    J'ai vu sur Internet que la version 3.1 d'Hibernate comportait une erreur à ce sujet.

    J'ai donc téléchargé une version plus récente (3.2.7 et 3.3.2) comme écrit sur les différents messages que j'ai vu.
    Mais cela ne change rien, j'ai toujours la même erreur sur certaines recherches...

    ca fait un bon moment que je suis bloqué sur cette erreur, et je n'arrive pas à avancer ...

  3. #3
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 938
    Par défaut
    L'erreur ne me parait pas être un pb du nbre d'enregistrements.
    T'as mis quoi comme polititique de mapping entre les classes persistantes qui font l'objet de la requete(LAZY ou EAGER), surement LAZY, remplace par EAGER et refait ta requete.

  4. #4
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Tu n'aurais pas soit mélangé deux version de hibernate dans tes libiraire, soit utilisé un version de cglib qui ne correspond pas à ta version d'hibernate.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 62
    Par défaut
    Quelles sont les versions 'hiberante et de cglib comptaible ?

    J'ai actuellement hibernate 3.1.2 et cglib 2.1.3.

  6. #6
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Citation Envoyé par Didine981 Voir le message
    Quelles sont les versions 'hiberante et de cglib comptaible ?
    La version de CGLib qui est fournie avec Le Hibernate que tu as téléchargé. En l'occurence pour hibernate 3.1.2 c'est bien cglib 2.1.3

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 11/05/2014, 17h58
  2. Criteria List & cache de second niveau
    Par pcouas dans le forum Hibernate
    Réponses: 0
    Dernier message: 08/02/2011, 11h02
  3. Réponses: 1
    Dernier message: 28/06/2010, 17h52
  4. Réponses: 4
    Dernier message: 04/03/2010, 15h13
  5. criteria.list erst bloqué dans son execution
    Par *alexandre* dans le forum Hibernate
    Réponses: 3
    Dernier message: 10/09/2008, 19h03

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