Bonjour à tous, j'ai un problème avec une formula property

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
 
 
<hibernate-mapping>
	<class name="RefundingFileImpl"
		table="REFUNDING_FILE">
 
		<id name="id" column="ID" unsaved-value="null">
			<generator class="increment" />
		</id>
 
        	<many-to-one name="legalPerson"
			class="LegalPersonImpl" cascade="none"
			outer-join="auto" update="true" insert="true"
			column="LEGAL_PERSON_ID" not-null="true" />
 
           <property name="state" type="java.lang.String" update="true"
			insert="true" column="STATE" not-null="true" />
 
	<property name="sort" type="java.lang.String" update="false"
			insert="false" not-null="true" 
			formula="(select rss.VALUE from REFUNDING_STATE_SORT rss where rss.state = state)"
			/>
	</class>
</hibernate-mapping>
(J'ai retiré des champs qui n'entrent pas en compte dans le problème)

J'ai une erreur lorsque la requête suivante est effectuée:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
String queryString = "from RefundingFileImpl as rf where rf.legalPerson = ? 
Object parameters[] = new Object[] {personId};
List result = null;
result = getHibernateTemplate().find(queryString, parameters);
Voici l'erreur:

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
 
Hibernate: select refundingf0_.ID as ID, refundingf0_.VERSION as VERSION7_, refundingf0_.LEGAL_PERSON_ID as LEGAL3_7_, refundingf0_.PHYSICAL_PERSON_ID as PHYSICAL4_7_,  refundingf0_.SUBMISSION_DATE as SUBMISSION10_7_, refundingf0_.REASON_WHY_FILE_IS_REFUSED as REASON11_7_, (select rss.VALUE from REFUNDING_STATE_SORT rss where rss.state = refundingf0_.state) as formula0_ from REFUNDING_FILE refundingf0_ where refundingf0_.LEGAL_PERSON_ID=? order by refundingf0_.STATE, refundingf0_.SUBMISSION_DATE
ERROR - RefundingFileDAOImpl.findRefundingFilesFromLegalPersonId(69) | problem occured while accessing Files for user 171629 : 
org.springframework.orm.hibernate3.HibernateSystemException: exception setting property value with CGLIB (set hibernate.cglib.use_reflection_optimizer=false for more info) setter of com.notary.app.rmb.model.impl.RefundingFileImpl.setSort; nested exception is org.hibernate.PropertyAccessException: exception setting property value with CGLIB (set hibernate.cglib.use_reflection_optimizer=false for more info) setter of com.notary.app.rmb.model.impl.RefundingFileImpl.setSort
org.hibernate.PropertyAccessException: exception setting property value with CGLIB (set hibernate.cglib.use_reflection_optimizer=false for more info) setter of com.notary.app.rmb.model.impl.RefundingFileImpl.setSort
	at org.hibernate.tuple.PojoTuplizer.setPropertyValuesWithOptimizer(PojoTuplizer.java:203)
	at org.hibernate.tuple.PojoTuplizer.setPropertyValues(PojoTuplizer.java:173)
	at org.hibernate.persister.entity.BasicEntityPersister.setPropertyValues(BasicEntityPersister.java:2919)
	at org.hibernate.engine.TwoPhaseLoad.initializeEntity(TwoPhaseLoad.java:113)
	at org.hibernate.loader.Loader.initializeEntitiesAndCollections(Loader.java:530)
	at org.hibernate.loader.Loader.doQuery(Loader.java:436)
	at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:218)
	at org.hibernate.loader.Loader.doList(Loader.java:1593)
	at org.hibernate.loader.Loader.list(Loader.java:1577)
	at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:395)
	at org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:271)
	at org.hibernate.impl.SessionImpl.list(SessionImpl.java:844)
	at org.hibernate.impl.QueryImpl.list(QueryImpl.java:74)
 
 
[.....]
 
Caused by: net.sf.cglib.beans.BulkBeanException: java.lang.String cannot be cast to java.lang.Number
	at RefundingFileImpl$$BulkBeanByCGLIB$$9f8ad5f5.setPropertyValues(<generated>)
	at org.hibernate.tuple.PojoTuplizer.setPropertyValuesWithOptimizer(PojoTuplizer.java:200)
	... 75 more
Caused by: java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Number
	... 77 more
Donc j'ai un "java.lang.String cannot be cast to java.lang.Number" mais je ne comprends pas d'où il vient, mon champs "sort" est défini comme un int dans la classe 'RefundingFileImpl' et la colonne "VALUE" de REFUNDING_STATE_SORT est un number, "STATE" est un varchar dans les deux tables. Où se trouve alors cette string dont parle l'erreur?