Bonjour,
Actuellement, je modifie ma base de données. J'ai ajouté une clef étrangère à une table. Je l'ajoute dans mon mapping, tout fonctionne, mais quand je passe dans la vue (sous la page JSP), je remarque un phénomène étrange !
Mon instance est un segment de classe i2.application.vh.valueobject.Seg.
Quand je veux afficher le libellé du tronçon, je fais :
<bean:write name="segment" property="tro.libelle"/>
Cela fonctionne très bien.
Quand je veux afficher l'id de l'état je fais :
<bean:write name="segment" property="etr.id"/>
Cela fonctionne très bien.
Quand je veux afficher quoi que ce soit d'autre de l'état je fais :
<bean:write name="segment" property="etr.duree"/>
Là une exception est levée :
ServletException in '/WEB-INF/jsp/vh/etat/segmentTempsReel.jsp': Exception thrown by getter for property etr.duree of bean segment
Alors j'ai cherché, cherché, cherché. La seule piste bizarre que j'ai remarqué est la suivante. J'affiche la classe du troncon (qui marche) et la classe de l'état (qui ne marche pas)
1 2
| <bean:write name="segment" property="tro.class"/>
<bean:write name="segment" property="etr.class"/> |
Je constate un drôle de problème !
class i2.application.vh.valueobject.Troclass i2.application.vh.valueobject.Eta$$EnhancerByCGLIB$$e549db8b
Pourquoi ce drôle de schmilblik EnhancerByCGLIB ???
J'ai beau cherché, je ne vois pas.
Voici le mapping de Tro, Seg et Eta
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 29 30 31 32 33 34 35 36 37 38 39 40 41
| <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping default-lazy="true">
<class name="i2.application.vh.valueobject.Seg"
table="te_segment_seg">
<cache usage="read-write" />
<id name="id" column="seg_id">
<generator class="sequence">
<param name="sequence">te_segment_seg_seg_id_seq</param>
</generator>
</id>
<property name="sens" column="seg_sens" not-null="true" />
<property name="direction" column="seg_direction" not-null="true" />
<!-- Cartographie -->
<property name="chemin" column="seg_chemin" />
<property name="cheminCrypte" column="seg_crypte" />
<property name="level" column="seg_level" />
<!-- Clef étrangere -->
<many-to-one name="tro" column="tro_id" not-null="true" />
<many-to-one name="oppose" column="seg_id_oppose" />
<many-to-one name="etr" column="eta_id" not-null="true" class="i2.application.vh.valueobject.Eta"/>
<many-to-one name="itr" column="int_id" not-null="true" class="i2.application.vh.valueobject.Int"/>
<!-- Liaisons n-1 -->
<!-- set name="eta" inverse="true">
<key column="eta_id" />
<one-to-many class="i2.application.vh.valueobject.Eta" />
</set>
<set name="int" inverse="true">
<key column="int_id" />
<one-to-many class="i2.application.vh.valueobject.Int" />
</set> -->
</class>
</hibernate-mapping> |
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
| <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping default-lazy="true">
<class name="i2.application.vh.valueobject.Tro"
table="te_troncon_tro">
<cache usage="read-write" />
<id name="id" column="tro_id">
<generator class="sequence">
<param name="sequence">te_troncon_tro_tro_id_seq</param>
</generator>
</id>
<property name="libelle" column="tro_lib" not-null="true" />
<property name="ordre" column="tro_ord" not-null="true" />
<property name="zoneSensible" column="tro_zone_sensible"
not-null="true" />
<property name="pente" column="tro_pente" />
<set name="seg" inverse="true">
<key column="tro_id" />
<one-to-many class="i2.application.vh.valueobject.Seg" />
</set>
<many-to-one name="axe" column="axe_id" not-null="true" />
<many-to-one name="cei" column="cei_id" not-null="true" />
</class>
</hibernate-mapping> |
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
| <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping default-lazy="true">
<!-- Couche Hibernate des états -->
<class
name="i2.application.vh.valueobject.Eta"
table="tj_etat_eta">
<cache usage="read-write"/>
<id name="id" column="eta_id">
<generator class="sequence">
<param name="sequence">tj_etat_eta_eta_id_seq</param>
</generator>
</id>
<!-- Propriétés -->
<property name="utilisateur" column="uti_id"/>
<property name="inscription" column="eta_ins"/>
<property name="chaussee" column="eta_chaussee"/>
<property name="duree" column="eta_duree"/>
<!-- Clef étrangère -->
<many-to-one name="seg" column="seg_id" not-null="true"/>
<many-to-one name="cnd" column="cnd_id" not-null="true"/>
</class>
</hibernate-mapping> |
Je sèche complètement, je ne trouve rien sur la toile ni sur la FAQ ! Quelqu'un a-t-il déjà rencontré ce phénomène ?
Partager