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 ?