Bonjour,

Je me permets de poster car je rencontre un souci avec Hibernate, pour lequel je ne trouve pas d'indications, aussi bien dans la doc officielle hibernate que sur le net.

Plateforme technique :
- hibernate 3
- JDK 5
- mapping via hbm.xml (sans anotations)

Besoin :
Je dispose d'une hiérarchie de classes :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
Event
  \
   PayoffEvent extends Event
     \
      CouponPayoffEvent extends PayoffEvent
A, B et C ayant chacun des attributs, dont certains complexes (components, avec des attributs utilisants des UserTypes).

dans mon mapping hibernate, j'indique donc :

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
 
<class  entity-name="Event"  name="Event"  table="TEVT">
 
  <composite-id name="id" class="Identifier">
  	<key-property name="applicationCode" column="ID_APP_CODE" type="string"/>
  	<key-property name="applicationInternalId" column="ID_APP_ID" type="string" />
  	<key-property name="version" column="ID_VERSION" type="integer" />
  	<key-property name="objectType" column="ID_TYPE" type="ObjectTypeUserType"/>
  </composite-id>
 
  <discriminator type="string" column="EVENT_TYPE" insert="false" />
 
  <subclass discriminator-value="PayoffEvent" name="PayoffEvent" extends="Event">
 
   	 <component name="payoffId" class="Identifier" insert="true" update="true" lazy="false" >
	  	<property name="applicationCode" type="string" column="ENTITY_APP_CODE"/>
	  	<property name="applicationInternalId" type="string" column="ENTITY_APP_ID" />
	  	<property name="version" type="integer" column="ENTITY_VERSION" />
	  	<property name="objectType" column="ENTITY_TYPE" type="ObjectTypeUserType"/>
	 </component>
   </subclass>
 
   <subclass discriminator-value="CouponPayoffEvent" name="CouponPayoffEvent" extends="PayoffEvent">
   	  <property column="RATE" generated="never" lazy="false" name="rate"/>
   </subclass>

A l'execution, lorsque je requête une feuille de mon arbre (un CouponPayoffEvent) :

1\ La requête générée par hibernate sélectionne bien les attributs de ma classe abstraite intermédiaire : les champs ENTITY_APP_CODE, ENTITY_APP_ID, ENTITY_VERSION, ENTITY_TYPE

2\ Hibernate ne cherche PAS à mapper ces attributs du resultSet vers mon instance pour une raison que je ne comprends pas !!!




Bilan : tous les attributs des classes abstraites intermédiaires ne sont JAMAIS settés ! Alors qu'ils sont toujours requêtés d'un point de vue SQL !

j'ai un souci dans mon mapping ??

Merci d'avance