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







Répondre avec citation

Partager