Jointure sur une clé composée
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
Code:
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;
} |
Les domaines de valeurs
Code:
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;
} |
la clé composite des domaine de valeur.
Code:
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;
} |
Dans l'idée le champ tpvIdtps prendrait la valeur 30 (comme le nom du champ sur l'affaire le laisse apparaître.
la valeur de tpvId dépenderait de la valeur du champ affEtatCvt30 de l'objet affaire.
Ainsi la jointure :
Code:
@JoinColumn(name="affEtatCvt30", referencedColumnName="tpv_id")
n'est pas fonctionnelle puisque nécessitant la valeur 30 en plus, mais cette valeur étant static comme la passer à la jointure ?
Merci d'avance de vos lumières.
HadanMarv