-->
These old forums are deprecated now and set to read-only. We are waiting for you on our new forums!
More modern, Discourse-based and with GitHub/Google/Twitter authentication built-in.

All times are UTC - 5 hours [ DST ]



Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 11 posts ] 
Author Message
 Post subject: Echec de conversion dans la représentation interne !!!!
PostPosted: Thu Sep 08, 2005 9:55 am 
Newbie

Joined: Tue Aug 30, 2005 1:48 pm
Posts: 15
Bonjour,
J'ai un problème apparemment dans les fichier de mapping : j'arrive pas à accéder à la base/ Aidez moi svp.

merci bcp



Hibernate version:3

Mapping documents:

Rejet.hbm.xml :

<class
name="com.report.persistence.pojos.Rejet"
table="REJET"
>

<composite-id>
<key-many-to-one
name="rejapouv"
class="com.report.persistence.pojos.Rejapouv"
column="S_MOTIF"
/>
<key-many-to-one
name="tournee"
class="com.report.persistence.pojos.Tournee"
column="S_IDTOUR"
/>
</composite-id>

<property
name="nQtcour"
type="java.lang.Integer"
column="N_QTCOUR"
length="5"
/>
<property
name="nQtpages"
type="java.lang.Integer"
column="N_QTPAGES"
length="5"
/>

<!-- Associations -->
<!-- derived association(s) for compound key -->
<!-- end of derived association(s) -->


</class>

Rejapouv.hbm.xml :
<class
name="com.report.persistence.pojos.Rejapouv"
table="REJAPOUV"
>

<id
name="code"
type="java.lang.Integer"
column="CODE"
>

<generator class="assigned" />
</id>

<property
name="description"
type="java.lang.String"
column="DESCRIPTION"
not-null="true"
unique="true"
length="50"
/>
<property
name="type"
type="java.lang.String"
column="TYPE"
length="20"
/>
<property
name="ordre"
type="java.lang.Integer"
column="ORDRE"
length="3"
/>

<!-- Associations -->
<set
name="rejets"
lazy="true"
inverse="true"
cascade="all"
>
<key>
<column name="DESCRIPTION" />
</key>
<one-to-many
class="com.report.persistence.pojos.Rejet"
/>
</set>

</class>

Tournee.hbm.xml :

<class
name="com.report.persistence.pojos.Tournee"
table="TOURNEE"
>

<id
name="sIdtour"
type="java.lang.String"
column="S_IDTOUR"
>

<generator class="assigned" />
</id>

<property
name="dtArrivtour"
type="java.util.Date"
column="DT_ARRIVTOUR"
length="7"
/>
<!-- Associations -->

<!-- bi-directional one-to-many association to Rejet -->
<set
name="rejets"
lazy="true"
inverse="true"
cascade="all"
>
<key>
<column name="S_IDTOUR" />
</key>
<one-to-many
class="com.report.persistence.pojos.Rejet"
/>
</set>
</class>


Code between sessionFactory.openSession() and session.close():
When i Tried this query :
list = myHibernateSession.createQuery("from com.report.persistence.pojos.Rejet").list();

Full stack trace of any exception that occurs:
i got this error :

2005-09-08 15:33:50,484 [http-8080-Processor24] INFO com.report.web.actions.TraitRejetRetourAction - Les champs saisies sont : year= month= day= strDate=080905
Hibernate: select rejet0_.S_MOTIF as S1_, rejet0_.S_IDTOUR as S2_, rejet0_.N_QTCOUR as N3_5_, rejet0_.N_QTPAGES as N4_5_ from REJET rejet0_
2005-09-08 15:33:51,812 [http-8080-Processor24] WARN org.hibernate.util.JDBCExceptionReporter - SQL Error: 17059, SQLState: null
2005-09-08 15:33:51,812 [http-8080-Processor24] ERROR org.hibernate.util.JDBCExceptionReporter - Echec de conversion dans la représentation interne
2005-09-08 15:33:51,843 [http-8080-Processor24] ERROR com.report.persistence.managers.RejetPersistenceManagerImpl - La recherche de tous les Rejet à echoué
org.hibernate.exception.GenericJDBCException: could not execute query
at org.hibernate.exception.ErrorCodeConverter.handledNonSpecificException(ErrorCodeConverter.java:92)
at org.hibernate.exception.ErrorCodeConverter.convert(ErrorCodeConverter.java:80)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
at org.hibernate.loader.Loader.doList(Loader.java:1596)
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)
at com.report.persistence.managers.RejetPersistenceManagerImpl.findAll(RejetPersistenceManagerImpl.java:70)
at com.report.web.businessLayer.TraitRejetRetourBL.getRejetRetourByDay(TraitRejetRetourBL.java:50)
at com.report.web.actions.TraitRejetRetourAction.execute(TraitRejetRetourAction.java:56)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at com.commons.filter.HibernateFilter.doFilter(HibernateFilter.java:117)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:744)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Unknown Source)
Caused by: java.sql.SQLException: Echec de conversion dans la représentation interne
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:179)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:269)
at oracle.jdbc.driver.OracleStatement.getIntValue(OracleStatement.java:4290)
at oracle.jdbc.driver.OracleResultSetImpl.getInt(OracleResultSetImpl.java:510)
at oracle.jdbc.driver.OracleResultSet.getInt(OracleResultSet.java:1528)
at com.mchange.v2.c3p0.impl.NewProxyResultSet.getInt(NewProxyResultSet.java:2728)
at org.hibernate.type.IntegerType.get(IntegerType.java:26)
at org.hibernate.type.NullableType.nullSafeGet(NullableType.java:77)
at org.hibernate.type.NullableType.nullSafeGet(NullableType.java:68)
at org.hibernate.type.ManyToOneType.hydrate(ManyToOneType.java:84)
at org.hibernate.type.ComponentType.hydrate(ComponentType.java:423)
at org.hibernate.type.ComponentType.nullSafeGet(ComponentType.java:182)
at org.hibernate.loader.Loader.getKeyFromResultSet(Loader.java:759)
at org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:292)
at org.hibernate.loader.Loader.doQuery(Loader.java:412)
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:218)
at org.hibernate.loader.Loader.doList(Loader.java:1593)
... 31 more


Name and version of the database you are using:

Oracle 8i

The generated SQL (show_sql=true):
select rejet0_.S_MOTIF as S1_, rejet0_.S_IDTOUR as S2_, rejet0_.N_QTCOUR as N3_5_, rejet0_.N_QTPAGES as N4_5_ from REJET rejet0_


Top
 Profile  
 
 Post subject:
PostPosted: Thu Sep 08, 2005 10:21 am 
Pro
Pro

Joined: Fri Sep 02, 2005 4:21 am
Posts: 206
Location: Vienna
Bonjour,

Une possible cause est qu'un type du mapping ne corresponde pas au type dans la base de données.

Si tu ne trouves rien, poste le script de creation des tables - peut-être plusieurs paires d'yeux supplémentaires pourront-elles t'aider :-).

Erik


Top
 Profile  
 
 Post subject:
PostPosted: Thu Sep 08, 2005 10:57 am 
Newbie

Joined: Tue Aug 30, 2005 1:48 pm
Posts: 15
J'ai déjà verifié ça je ne pense pas que c le cas : voila tout


<class
name="com.report.persistence.pojos.Rejet"
table="REJET"
>

<composite-id>
<key-many-to-one
name="rejapouv"
class="com.report.persistence.pojos.Rejapouv"
column="S_MOTIF"
/>
<key-many-to-one
name="tournee"
class="com.report.persistence.pojos.Tournee"
column="S_IDTOUR"
/>
</composite-id>

<property
name="nQtcour"
type="java.lang.Integer"
column="N_QTCOUR"
length="5"
/>
<property
name="nQtpages"
type="java.lang.Integer"
column="N_QTPAGES"
length="5"
/>

<!-- Associations -->
<!-- derived association(s) for compound key -->
<!-- end of derived association(s) -->


</class>

Rejapouv.hbm.xml :
<class
name="com.report.persistence.pojos.Rejapouv"
table="REJAPOUV"
>

<id
name="code"
type="java.lang.Integer"
column="CODE"
>

<generator class="assigned" />
</id>

<property
name="description"
type="java.lang.String"
column="DESCRIPTION"
not-null="true"
unique="true"
length="50"
/>
<property
name="type"
type="java.lang.String"
column="TYPE"
length="20"
/>
<property
name="ordre"
type="java.lang.Integer"
column="ORDRE"
length="3"
/>

<!-- Associations -->
<set
name="rejets"
lazy="true"
inverse="true"
cascade="all"
>
<key>
<column name="DESCRIPTION" />
</key>
<one-to-many
class="com.report.persistence.pojos.Rejet"
/>
</set>

</class>

Tournee.hbm.xml :

<class
name="com.report.persistence.pojos.Tournee"
table="TOURNEE"
>

<id
name="sIdtour"
type="java.lang.String"
column="S_IDTOUR"
>

<generator class="assigned" />
</id>

<property
name="dtArrivtour"
type="java.util.Date"
column="DT_ARRIVTOUR"
length="7"
/>
<property
name="sIdutilisateur"
type="java.lang.String"
column="S_IDUTILISATEUR"
length="50"
/>
<property
name="sType"
type="java.lang.String"
column="S_TYPE"
length="50"
/>
<property
name="sTransporteur"
type="java.lang.String"
column="S_TRANSPORTEUR"
length="50"
/>
<property
name="sOrigine"
type="java.lang.String"
column="S_ORIGINE"
length="50"
/>
<property
name="nBacs"
type="java.lang.Integer"
column="N_BACS"
length="5"
/>
<property
name="nPlisattar"
type="java.lang.Integer"
column="N_PLISATTAR"
length="5"
/>
<property
name="nPlisrecusar"
type="java.lang.Integer"
column="N_PLISRECUSAR"
length="5"
/>
<property
name="sRefposte"
type="java.lang.String"
column="S_REFPOSTE"
length="50"
/>
<property
name="dtBordbt"
type="java.util.Date"
column="DT_BORDBT"
length="7"
/>
<property
name="nBordbt"
type="java.lang.Integer"
column="N_BORDBT"
length="5"
/>
<property
name="nPlisattbt"
type="java.lang.Integer"
column="N_PLISATTBT"
length="5"
/>
<property
name="nPlisrecusbt"
type="java.lang.Integer"
column="N_PLISRECUSBT"
length="5"
/>
<property
name="nPlisattouvbt"
type="java.lang.Integer"
column="N_PLISATTOUVBT"
length="5"
/>
<property
name="nPlisrecusouvbt"
type="java.lang.Integer"
column="N_PLISRECUSOUVBT"
length="5"
/>
<property
name="nPlisouvauto"
type="java.lang.Integer"
column="N_PLISOUVAUTO"
length="5"
/>
<property
name="nPlisouvman"
type="java.lang.Integer"
column="N_PLISOUVMAN"
length="5"
/>
<property
name="nPlisavecannexe"
type="java.lang.Integer"
column="N_PLISAVECANNEXE"
length="5"
/>
<property
name="nPlissansannexe"
type="java.lang.Integer"
column="N_PLISSANSANNEXE"
length="5"
/>
<property
name="sComment1"
type="java.lang.String"
column="S_COMMENT1"
length="50"
/>
<property
name="sComment2"
type="java.lang.String"
column="S_COMMENT2"
length="50"
/>
<property
name="nNonnum"
type="java.lang.Integer"
column="N_NONNUM"
length="5"
/>
<property
name="dtDebut"
type="java.util.Date"
column="DT_DEBUT"
length="7"
/>
<property
name="dtFin"
type="java.util.Date"
column="DT_FIN"
length="7"
/>
<!-- Associations -->

<!-- bi-directional one-to-many association to Rejet -->
<set
name="rejets"
lazy="true"
inverse="true"
cascade="all"
>
<key>
<column name="S_IDTOUR" />
</key>
<one-to-many
class="com.report.persistence.pojos.Rejet"
/>
</set>
</class>


les scripts de création de table sont les suivants :
create table REJET(
S_IDTOUR VARCHAR2(10) not null,
S_MOTIF VARCHAR2(50) not null,
N_QTCOUR NUMBER(5),
N_QTPAGES NUMBER(5));


create table REJAPOUV(
CODE NUMBER(3) PRIMARY KEY not null,
DESCRIPTION VARCHAR2(50) not null,
TYPE VARCHAR2(20),
ORDRE NUMBER(3));


create table TOURNEE(
S_IDTOUR VARCHAR2(10) PRIMARY KEY not null,
DT_ARRIVTOUR DATE,
S_IDUTILISATEUR VARCHAR2(50),
S_TYPE VARCHAR2(50),
S_TRANSPORTEUR VARCHAR2(50),
S_ORIGINE VARCHAR2(50),
N_BACS NUMBER(5),
N_PLISATTAR NUMBER(5),
N_PLISRECUSAR NUMBER(5),
S_REFPOSTE VARCHAR2(50),
DT_BORDBT DATE,
N_BORDBT NUMBER(5),
N_PLISATTBT NUMBER(5),
N_PLISRECUSBT NUMBER(5),
N_PLISATTOUVBT NUMBER(5),
N_PLISRECUSOUVBT NUMBER(5),
N_PLISOUVAUTO NUMBER(5),
N_PLISOUVMAN NUMBER(5),
N_PLISAVECANNEXE NUMBER(5),
N_PLISSANSANNEXE NUMBER(5),
S_COMMENT1 VARCHAR2(50),
S_COMMENT2 VARCHAR2(50),
N_NONNUM NUMBER(5),
DT_DEBUT DATE,
DT_FIN DATE);


Top
 Profile  
 
 Post subject:
PostPosted: Thu Sep 08, 2005 11:13 am 
Pro
Pro

Joined: Fri Sep 02, 2005 4:21 am
Posts: 206
Location: Vienna
Je pense que j'ai la solution:

S_MOTIF VARCHAR2(50) devrait avoir le même type que CODE NUMBER(3) PRIMARY KEY, ce qui n'est pas le cas.

Là est le problème.

Qu'en penses-tu?

Erik


Top
 Profile  
 
 Post subject:
PostPosted: Thu Sep 08, 2005 11:27 am 
Newbie

Joined: Tue Aug 30, 2005 1:48 pm
Posts: 15
En fait la base je l'ai pas conçue. c une base déjà en prod donc je n'ai pas le droit de la toucher. S_Motif ne pointe pas sur code mais pointe sur description (unique). C pas propore mais je n'ai pas le choix.
Merci bcp pour ton aide : t'as une autre idée?


Top
 Profile  
 
 Post subject:
PostPosted: Thu Sep 08, 2005 11:54 am 
Pro
Pro

Joined: Fri Sep 02, 2005 4:21 am
Posts: 206
Location: Vienna
Franchement: c'est la chienlit!

N'ayant pas d'expérience en la matière il m'est difficile de donner un conseil sûr.

Je crains qu'il ne faille déclarer la partie de la clef vers REJAPOUV comme une property normale (avec key-property au lieu de key-many-to-one).
Tu perds alors l'association "automatique" avec Rejapouv, ce qui est très "désagréable" :-(

Si personne dans ce forum n'a une solution géniale, il faut essayer...

C'est un problème intéressant (même si je considère que ce schema est une catastrophe, qu'il faudrait réparer) - si j'ai le temps, je vais le regarder de plus près, mais je ne peux rien promettre...

Erik


Top
 Profile  
 
 Post subject:
PostPosted: Thu Sep 08, 2005 12:47 pm 
Newbie

Joined: Tue Aug 30, 2005 1:48 pm
Posts: 15
Ce que j'ai compris c'est que :

<key-many-to-one
name="rejapouv"
class="com.report.persistence.pojos.Rejapouv"
column="S_MOTIF"
/>

pointe S_MOTIF sur REJAPOUV donc sur son clé primaire : d'ailleurs j'ai pas trouver le moyen pour lui dire que ça pointe sur description et non pas sur la clé prmaire. Donc g triché en changeant dans mes fichier de mapping la clé primaire dans REJAPOUV et g mis DESCRIPTIOn au lieu de CODE. ça marche maintenant s'il ya moyen de préciser dans key-many-to-one le champ exacte auquel point S_MOTIF je pense que ça pourra m'aider.

J'espère que j'ai pas dit de betise. J'ai pas une grande experience avec hibernate. Je veux avoir vos avis.

Merci bcp Erik et à tous


Top
 Profile  
 
 Post subject:
PostPosted: Fri Sep 09, 2005 2:53 am 
Pro
Pro

Joined: Fri Sep 02, 2005 4:21 am
Posts: 206
Location: Vienna
J'ai un peu expérimenté, mais n'est rien trouvé de mieux que ce que tu proposes.

Pour les associations on peut définir une property-ref qui permet de désigner une colonne autre que la clef primaire pour l'association, mais je n'ai pas trouvé d'équivalent pour key-many-to-one.

Erik


Top
 Profile  
 
 Post subject:
PostPosted: Fri Sep 09, 2005 5:50 am 
Hibernate Team
Hibernate Team

Joined: Sun Sep 14, 2003 3:54 am
Posts: 7256
Location: Paris, France
<key-proeprty name="smotifid" column="smotif_id"/>
</compositeid>

<many-to-one name="smotif" proeprty-ref="description" column="smotif_id" insert=false update=false/>

un truc dans le genre.

_________________
Emmanuel


Top
 Profile  
 
 Post subject:
PostPosted: Fri Sep 09, 2005 5:50 am 
Hibernate Team
Hibernate Team

Joined: Sun Sep 14, 2003 3:54 am
Posts: 7256
Location: Paris, France
Et limoge le DBA

_________________
Emmanuel


Top
 Profile  
 
 Post subject:
PostPosted: Fri Sep 09, 2005 11:59 am 
Newbie

Joined: Tue Aug 30, 2005 1:48 pm
Posts: 15
Effectivement c la solution :

<composite-id>
<key-property
name="sMotif"
type="java.lang.String"
column="S_MOTIF"
length="50"
/>
<key-many-to-one
name="tournee"
class="com.report.persistence.pojos.Tournee"
column="S_IDTOUR"
/>
</composite-id>

<many-to-one class="com.report.persistence.pojos.Rejapouv" name="rejapouv" property-ref="description" column="S_MOTIF" insert="false" update="false" />


Top
 Profile  
 
Display posts from previous:  Sort by  
Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 11 posts ] 

All times are UTC - 5 hours [ DST ]


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
© Copyright 2014, Red Hat Inc. All rights reserved. JBoss and Hibernate are registered trademarks and servicemarks of Red Hat, Inc.