Bonjour,
je suis à la recherche de la bonne méthode pour pouvoi faire une jointure entre deux objets se composant comme suit :
L'objet devant mapper la relation en question
Les domaines de valeurs
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 @Entity @Table(name="affaires") public class Affaire { @Id @SequenceGenerator(name="AFFAIRE_GENERATOR", sequenceName="aff_idseq") @GeneratedValue(generator="AFFAIRE_GENERATOR") @Column(name="aff_id") private Integer affId; @Column(name="aff_etat_cvt30") private String affEtatCvt30; @ManyToOne(fetch=FetchType.LAZY) @JoinColumn(name="affEtatCvt30", referencedColumnName="tpv_id") private DomaineValeur valeur; }
la clé composite des domaine de valeur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 @Entity @Table(name="domaine_valeurs") public class DomaineValeur { @EmbeddedId private DomaineValeurPK id; @Column(name="tpv_idtps", insertable=false, updatable=false) private Integer tpvIdtps; @Column(name="tpv_id", insertable=false, updatable=false) private String tpvId; }
Dans l'idée le champ tpvIdtps prendrait la valeur 30 (comme le nom du champ sur l'affaire le laisse apparaître.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 @Embeddable public class DomaineValeurPK { @Column(name="tpv_idtps") private Integer tpvIdtps; @Column(name="tpv_id") private String tpvId; }
la valeur de tpvId dépenderait de la valeur du champ affEtatCvt30 de l'objet affaire.
Ainsi la jointure :
n'est pas fonctionnelle puisque nécessitant la valeur 30 en plus, mais cette valeur étant static comme la passer à la jointure ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part @JoinColumn(name="affEtatCvt30", referencedColumnName="tpv_id")
Merci d'avance de vos lumières.
HadanMarv
Partager