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" :
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
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>
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
Partager