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 :
L'exception est levée au moment de l'appel de la méthode list() qui doit me récupérer mes résultats.
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)
Ci joint le fichier hbm sur lequel porte le CriteriaHibernate :
L'exception est levée uniquement quand on ramène trop de résultats.
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>
Quelqu'un a-til une idée pour résoudre le problème ?
Partager