Bonjour à tous !!

J'ai un petit problème avec les mappings hbm.

J'ai une table A et une table B :

A
aid
bid
cid
langabrev
aname

B
bid
bname

La table A contient un identifiant pour associer une ligne de la table B (bid).
J'aimerai maintenant récupérer la valeur bname de la table B dans mon mapping de la table A.

J'ai tenté de le faire avec une balise "join" :

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
 
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
		"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
		"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="com.test">
 
	<class name="AVO" table="A">
		<id name="id" column="aid" unsaved-value="0">
			<generator class="native"/>
		</id>
		<property name="bid" column="bid" />
		<property name="langabrev" column="langabrev" />
		<property name="name" column="medianame" />
 
		<join table="b">
			<key column="bid" property-ref="bid" />
			<property name="bname" type="string">
			</property>
		</join>
 
	</class>
</hibernate-mapping>
mais rien n'y fait... j'ai pu voir dans la doc que "property-ref" permettait de faire référence à une clé autre que la clé primaire de ma classe AVO, mais dans la requête, il continue à me faire un left join b on a.aid = b.bid, alors que la requête devrai être left join b on a.bid = b.bid


Dans le même ordre d'idée, j'ai une table C qui est définie comme suivant :

C
cid
langabrev
cname

Et j'aimerai pouvoir récupérer, toujours dans mon mapping AVO, la valeur cname en faisant référence au cid (même problème que ci-dessus) et en faisant également référence au langabrev de la table A. J'ai tenté avec une "formula" mais là encore, pas plus de succès... peut-être utiliser une clé composée en faisant référence aux 2 champs de la table A, mais comme je n'arrive déjà pas à faire référence à 1 seul champ (problème du départ) j'arrive encore moins à le faire sur 2 champs...

Si quelqu'un pouvait bien m'éclairer sur les références vers des tables externes, la manière de les mettre en oeuvre, ça me serait d'une grande aide.


D'avance merci pour vos suggestions.


Cordialement