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 : 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;
}
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
 
@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 : 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;
}
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 : Sélectionner tout - Visualiser dans une fenêtre à part
@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