mapping: valeur issu d'une autre table
Bonjour à toutes et à tous,
Je dois rajouter à un objet mappé dans Hibernate un attribut qui lui est issu d'une autre table que la table mappée par l'objet.
Mon objet est de type:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
|
public class Personne {
public int id;
public String dateDeNaissance;
public String nom;
public String prenom;
public String numeroDeCompte;
public Personne() { /* */ }
// getter et setter
} |
Mes tables sont:
T_PERSONNE:
- ID_PERSONNE
- NOM_PERSONNE
- PRENOM_PERSONNE
- DATE_NAISSANCE
et
T_BANQUE:
- NUMERO_COMPTE
- ID_PERSONNE
- SOLDE
mon mapping est de type
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
|
<hibernate-mapping>
<class name="com.machin.core.Personne"
table="T_Personne"
proxy="com.machin.core.Personne"
mutable="false"
dynamic-update="false"
dynamic-insert="false">
<cache usage="read-only"/>
<id name="id" column="ID_PERSONNE">
<generator class="assigned"/>
</id>
<property name="nom" column="NOM_PERSONNE"/>
<property name="prenom" column="PRENOM_PERSONNE"/>
<property name="dateDeNaissance" column="DATE_NAISSANCE"/>
<set name="numeroDeCompte" table="T_BANQUE">
<key column="ID_PERSONNE"/>
<property name="numeroDeCompte" column="NUMERO_COMPTE" where="SOLDE IS NOT NULL"/>
</set>
</class> |
En fait je dois rajouter au mapping la valeur de numeroDeCompte
correspondant à:
SELECT NUMERO_DE_COMPTE FROM T_BANQUE WHERE SOLDE IS NOT NULL AND ID_PERSONNE = ....
évidemment en partant du principe qu'il n'y a qu'une valeur envoyée par la requête
(pour des raison de confidentialités, j'ai changé les valeurs, nom et idée des tables réellement utilisées... j'ai pris comme exemple le secteur banquaire, mais j'aurais pu aussi prendre le secteur automobile, assurance, télécom, etc...)
Si quelqu'un a une idée de comment faire ce type de mapping sous hibernate, je lui en saurai gré et reconnaissant. Car je n'ai pas trouvé dans les docs disponibles sur la toile comment faire ce genre de chose...
Merci d'avance
Amicalement
Gojira
[edit]correction de l'objet exemple java[/edit]