Bonjour,

Je cherche à réaliser un one-to-one entre deux classes/tables pour lesquelles je souhaiterais que les clés primaires soient identiques.

Voici l'objet dossier (mapping) qui contient une fiche sécu :

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
 
<class name="commun.bo.Dossier" table="DOSSIER">
		<composite-id>
			<key-property name="annee" column="ANNEE"/>
			<key-property name="sequence" column="SEQUENCE"/>
			<key-many-to-one name="district" class="commun.bo.District" column="NUM_DISTRICT" lazy="false"/>
		</composite-id>
 
		<property name="hasVisaAcc" column="VISA_ACC"/>
		<property name="hasVisaJur" column="VISA_JUR"/>
		<property name="isCloture" column="CLOTURE"/>
		<property name="isSupprime" column="SUPPRIME"/>
 
		<one-to-one name="ficheSecu" class="commun.bo.FicheSecu"/>
 
 
	</class>
</hibernate-mapping>
De l'autre côté la fiche sécu (mapping) :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
<class name="FicheSecu" table="F_SECU">
		<composite-id>
			<key-property name="tempAnnee" column="SEC_ANNEE"/>
			<key-property name="tempSequence" column="SEC_SEQ"/>
			<key-property name="tempNumDistrict" column="SEC_DISTRICT"/>
		</composite-id>
 
		[...]
 
	</class>
</hibernate-mapping>

Mais lorsque j'essaie de remonter une liste de dossier en fonction de champs présent dans sa fiche sécu, j'ai cette erreur :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
org.springframework.orm.hibernate3.HibernateSystemException : Provided id of the wrong type. Expected: class commun.bo.FicheSecu, got class commun.bo.Dossier; nested exception is org.hibernate.TypeMismatchException: Provided id of the wrong type. Expected: class commun.bo.FicheSecu, got class commun.bo.Dossier"

J'ai comme l'impression qu'Hibernate s'enmelle les pinceaux ! Ou bien c'est moi qui a oublié un détail... Mais quoi donc ?

Par avance, merci de votre aide.