IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Hibernate Java Discussion :

Problème avec une property formula


Sujet :

Hibernate Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 25
    Points : 23
    Points
    23
    Par défaut Problème avec une property formula
    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?

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 23
    Points : 28
    Points
    28
    Par défaut
    Bonjour,

    Je crois que tu dois avoir la même définition du type de la propriété "sort", car tu dis qu'il est définit comme "int" dans la classe, or je vois dans le fichier de mapping qu'il est définit "String".

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 25
    Points : 23
    Points
    23
    Par défaut
    Citation Envoyé par imad.elghazoini Voir le message
    Bonjour,

    Je crois que tu dois avoir la même définition du type de la propriété "sort", car tu dis qu'il est définit comme "int" dans la classe, or je vois dans le fichier de mapping qu'il est définit "String".
    oops, je venais de le voir, j'étais prêt à détruire mon post avant que qqn ne se rende compte combien je suis bête

    Bon, j'ai fais la modif, je compile et je teste...

    Merci

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 25
    Points : 23
    Points
    23
    Par défaut
    Voilà, ça marche, c'était donc juste un petit oubli idiot.

    Par contre, si quelqu'un sait comment je peux mapper le champs 'sort' sans avoir recours à une formula, ça m'intéresse. C'est que c'est quand-même un peu vilain le truc.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème avec une UDF
    Par kanmaber dans le forum Bases de données
    Réponses: 2
    Dernier message: 27/08/2004, 23h42
  2. [JBOSS] [Struts] Problème avec une application
    Par Tiercel dans le forum Wildfly/JBoss
    Réponses: 5
    Dernier message: 13/07/2004, 13h50
  3. Problème avec une instruction OUTER /Postgres
    Par Volcomix dans le forum Langage SQL
    Réponses: 14
    Dernier message: 21/04/2004, 16h56
  4. problème avec une requête imbriquée
    Par jaimepasteevy dans le forum Langage SQL
    Réponses: 13
    Dernier message: 05/12/2003, 10h29
  5. Problème avec une procédure stockée
    Par in dans le forum Langage SQL
    Réponses: 4
    Dernier message: 27/05/2003, 15h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo