[Hibernate] Pb mapping Oracle

Pb mapping Oracle [Hibernate] - Java - Programmation

Marsh Posté le 12-07-2005 à 10:50:46    

Bonjour,
 
je débute sur Struts/Hibernate, et là, j'ai un pb de mapping Hibernate vers une base Oracle.
 
Je vous donne mon fichier Fiche.hbm.xml :
 

Code :
  1. <?xml version="1.0"?>
  2. <!DOCTYPE hibernate-mapping PUBLIC
  3. "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
  4. "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
  5. <hibernate-mapping>
  6. <class name="beans.Fiche" table="FICHE">
  7.  <id name="idFiche" column="ID_FICHE" type="java.lang.Integer">
  8.   <column name="ID_FICHE" sql-type="NUMBER" not-null="true"/>
  9.   <generator class="sequence"/>
  10.  </id>
  11.  <property name="identifiantcadre" column="IDENTIFIANTCADRE" type="java.lang.String"/>
  12.  <property name="nomcadre" column="NOMCADRE" type="java.lang.String" length="50"/>
  13.  <property name="prenomcadre" column="PRENOMCADRE" type="java.lang.String"/>
  14.  <property name="dernieremodif" column="DERNIEREMODIF" type="java.lang.Date"/>
  15.  <property name="auteurmodif" column="AUTEURMODIF" type="java.lang.String"/>
  16. </class>
  17. </hibernate-mapping>


 
et voici le résultat dans la log de Tomcat :

Code :
  1. Mapping resource: beans/Fiche.hbm.xml
  2. 2005-07-12 10:33:15,609 DEBUG [http8080-Processor4] (DTDEntityResolver.java:42) - trying to locate http://hibernate.sourceforge.net/h [...] ng-3.0.dtd in classpath under org/hibernate/
  3. 2005-07-12 10:33:15,609 DEBUG [http8080-Processor4] (DTDEntityResolver.java:53) - found http://hibernate.sourceforge.net/h [...] ng-3.0.dtd in classpath
  4. 2005-07-12 10:33:15,781  INFO [http8080-Processor4] (HbmBinder.java:260) - Mapping class: beans.Fiche -> FICHE
  5. 2005-07-12 10:33:15,796 ERROR [http8080-Processor4] (Configuration.java:365) - Could not compile the mapping document
  6. org.hibernate.MappingException: column attribute may not be used together with <column> subelement


 
C'est un petit bout de trois fois rien qui nous bloque, et c'est d'autant plus difficile à trouver :??: .
Merci d'avance
Hervé

Reply

Marsh Posté le 12-07-2005 à 10:50:46   

Reply

Marsh Posté le 12-07-2005 à 11:53:04    

au lieu de faire ca :
 

Code :
  1. # <id name="idFiche" column="ID_FICHE" type="java.lang.Integer">
  2. #             <column name="ID_FICHE" sql-type="NUMBER" not-null="true"/>
  3. #             <generator class="sequence"/>
  4. #         </id>


 
essaye un peu et dit ce que ca donne :  
 

Code :
  1. # <id name="idFiche" column="ID_FICHE" type="java.lang.Integer">
  2. #                 <generator class="sequence"/>
  3. # </id>


 
en fait vires la ligne <column name ...  
ou alors tu fais l'inverse tu vires l'attribut column de l'element <id>

Reply

Marsh Posté le 12-07-2005 à 12:00:14    

+1 :o


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 12-07-2005 à 16:25:07    

sebi a écrit :

au lieu de faire ca :
 

Code :
  1. # <id name="idFiche" column="ID_FICHE" type="java.lang.Integer">
  2. #             <column name="ID_FICHE" sql-type="NUMBER" not-null="true"/>
  3. #             <generator class="sequence"/>
  4. #         </id>


 
essaye un peu et dit ce que ca donne :  
 

Code :
  1. # <id name="idFiche" column="ID_FICHE" type="java.lang.Integer">
  2. #                 <generator class="sequence"/>
  3. # </id>


 
en fait vires la ligne <column name ...  
ou alors tu fais l'inverse tu vires l'attribut column de l'element <id>


 
 
A priori, ça venait de l'appel d'un bean voisin Signaletique qui hérite du bean Fiche dans le modèle objet.
Du coup, Fiche.hbm.xml s'écrit :

Code :
  1. <?xml version="1.0"?>
  2. <!DOCTYPE hibernate-mapping PUBLIC
  3. "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
  4. "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
  5. <hibernate-mapping>
  6.     <class name="beans.Fiche" table="FICHE" >
  7.      <id name="id_fiche" type="integer" unsaved-value="0">
  8.   <column name="ID_FICHE" sql-type="NUMBER" not-null="true"/>
  9.   <generator class="assigned"/>
  10.  </id>
  11.         <property name="identifiantCadre" column="IDENTIFIANTCADRE" type="string" not-null="true"/>
  12.         <property name="nomCadre" column="NOMCADRE" type="string" not-null="true"/>
  13.         <property name="prenomCadre" column="PRENOMCADRE" type="string" />
  14.        
  15.         <joined-subclass name="beans.Signaletique" table="SIGNALETIQUE">
  16.           <key column="ID_FICHE"/>
  17.           <property name="sexe" column="SEXE" type="string"/>
  18.           <property name="DateNominationStatutFonction" column="DATENOMINATIONSTATUTFONCTION" type="date" />
  19.         </joined-subclass>
  20.     </class>
  21. </hibernate-mapping>


 
En plus, j'appelais directement une page jsp au lieu d'appeler une action Struts (qui utilise bien cette page jsp, mais après avoir initialisé les beans). Je pouvais chercher longtemps une erreur du côté Hibernate  :sleep: ...
Mais bon, je débute  :D ...
 
Merci pour les réponses,
Hervé

Reply

Marsh Posté le 12-07-2005 à 18:36:43    

oui peut etre mais l'erreur que tu a mis sur ton post venait bien d'une erreur xml , c'est d'ailleurs bien explicite :  
 
org.hibernate.MappingException: column attribute may not be used together with <column> subelement

Reply

Marsh Posté le 13-07-2005 à 09:34:40    

sebi a écrit :

oui peut etre mais l'erreur que tu a mis sur ton post venait bien d'une erreur xml , c'est d'ailleurs bien explicite :  
 
org.hibernate.MappingException: column attribute may not be used together with <column> subelement


 
Ben oui, mais maintenant il y a toujours des attributs <column> et ça marche, je n'ai plus le message dans la log.
Je ne vois que l'élément <joined-subclass> qui fasse la différence :whistle: ...
 
Je reviendrai sur ce site si j'ai d'autres pbs.
 
A+

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed