Bonjour à tous, j'ai un problème avec une formula property
(J'ai retiré des champs qui n'entrent pas en compte dans le problème)
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 une erreur lorsque la requête suivante est effectuée:
Voici l'erreur:
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);
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?
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
Partager