Bonjour,

je cherche à dompter hibernate pour un besoin bien précis, sur la génération d'un id automatique.

Actuellement, ma classe "ligne commande" est mappée comme suit :

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
 
@Entity
@Table(name = "ligne_commande")
public class LigneCommande implements java.io.Serializable{
 
 
	@Id
	@ManyToOne 
	@JoinColumn(name = "id_commande", nullable = false)
	private Commande commande ; 
 
	@Id
	@OneToOne 
	@JoinColumn(name="id_produit" )
	private Produit produit ;
j'aimerais introduire une notion d'id_lignecommande

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
@Entity
@Table(name = "ligne_commande")
public class LigneCommande implements java.io.Serializable{

	@Id
        @GenericGenerator(name = "mygen1", strategy = "increment")
	@GeneratedValue(generator = "mygen1")
	private LigneCommande lignecommande ; 
	
	@ManyToOne 
	@JoinColumn(name = "id_commande", nullable = false)
	private Commande commande ; 
	
	@OneToOne 
	@JoinColumn(name="id_produit" )
	private Produit produit ;
Mon problème vient de la stratégie pour générer la PK.
Le "increment" me place les id commande les uns à la suite

Le besoin : je voudrais que l'incrémentation se fasse selon l'id commande
en fait, la commande 1 aura les idlignecommande 1,2,3 ; tout commande la commande 2.

je me dis que je devrais donc avoir un @Id sur l'attribut commande également, pour que id_lignecommande et id_commande soient mes Primary Key.

Comment faire comprendre cela à Hibernate? Existe-t-il une stratégie toute faite?
Dois-je créer ma propre stratégie ? Comment faire?

merci d'avance de vos réponses,
olivier