Bonjour,
je voudrais rajouter des critères de recherche sur un set avec composite-element. j'ai le mapping suivant :
<hibernate-mapping>
<class name="com.salomon.plm.modele.PlmChangerequest" table="PLM_CHANGEREQUEST" schema="MGR_PLASMA">
<id name="id" type="long">
<column name="CHANGEREQUEST_ID" precision="22" scale="0" />
<generator class="sequence">
<param name="sequence">PLM_CHANGEREQUEST_SEQ</param>
</generator>
</id>
<property name="typeMV" type="string">
<column name="TYPEMVCO" length="90" not-null="true" />
</property>
<property name="idMV" type="string">
<column name="IDMVCO" length="90" not-null="true" />
</property>
...
<set name="signataire" lazy="false" table="PLM_SIGNATAIRE"> <key column="CHANGEREQUEST_ID"/> <composite-element class="com.salomon.plm.modele.PlmSignataire"> <property name="role" column="ROLESIGN" type="string"/> <property name="user" column="USERSIGN" type="string"/> <property name="dateApprobation" column="APPROBATIONDATE" type="date"/> <property name="state" column="APPROBATIONSTATE" type="string"/> <property name="commentaire" column="COMMENTAIRE" type="string"/> </composite-element> </set>
</class>
</hibernate-mapping>
la table PLM_SIGNATAIRE n'est pas mappée.
code java :
Session sess = HibernateSessionFactory.currentSession(this);
Criteria crit = sess.createCriteria(PlmChangerequest.class);
this.addToCriteria(crit, id, PLM_CHANGEREQUEST.ID);
...
// Signataire Criteria critSignataire = crit.createCriteria("signataire");
this.addToCriteria(critSignataire, pjm, "user");
pjm : crietère.
j'ai l'exception suivante :
20/04/2006 10:21:44 - org.hibernate.MappingException: collection was not an association: com.salomon.plm.modele.PlmChangerequest.signataire
at org.hibernate.type.CollectionType.getAssociatedEntityName(CollectionType.java:374)
at org.hibernate.loader.criteria.CriteriaQueryTranslator.getPathEntityName(CriteriaQueryTranslator.java:193)
at org.hibernate.loader.criteria.CriteriaQueryTranslator.createCriteriaEntityNameMap(CriteriaQueryTranslator.java:177)
at org.hibernate.loader.criteria.CriteriaQueryTranslator.<init>(CriteriaQueryTranslator.java:83)
at org.hibernate.loader.criteria.CriteriaLoader.<init>(CriteriaLoader.java:58)
at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1473)
at org.hibernate.impl.CriteriaImpl.list(CriteriaImpl.java:298)
Hibernate version : 3 Name and version of the database you are using: oracle 9i
merci pour votre aide.
SB
|