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:
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:
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 ?