Bonjour,

Je suis en train de réaliser une application me permettant de générer des devis mais je me heurte à des erreur sur mes relations :
- 1-n : une commande contient plusieurs lignes et une ligne est associée à une unique commande
- n-1 : une ligne est associé à un produit mais un produit peut être associé à plusieurs lignes (si matériau ou couleur sont différent)
Code java : 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
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
@Entity
@Table (name="commande")
public class Commande{
	@Id
	@GeneratedValue(strategy=GenerationType.IDENTITY)
	@Column (name="id")
	private int id;
	@OneToMany(mappedBy = "commande", cascade=CascadeType.ALL)
	private Set<Ligne> myLines=new HashSet<Ligne>(10);
}
@Entity
@Table (name="produit")
public class Produit {
	@Id
	@GeneratedValue(strategy=GenerationType.IDENTITY)
	@Column (name="Id")
	//@ManyToOne
    //@JoinColumn(name="id")
	private int id;
}
@Entity
@Table (name="ligne")
public class Ligne {
	@Id
	@ManyToOne
    @JoinColumn(name="commande")
	private Commande commande;
	@Id
	@OneToOne(fetch = FetchType.LAZY,cascade=CascadeType.ALL) 
	@JoinColumn(name="produit", unique=true, nullable=false, updatable=false)
	private Produit produit;
	@Column (name="quantity")
	private short quantity;
	@Id
	@Column (name="material")
	private String material;
	@Id
	@Column (name="color")
	private int color;
}

Je sauvegarde mes données de la manière suivante :
Code java : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
Commande c=new Commande();
//ajout de chaque ligne avec les produits
Session s=HibernateUtils.getSessionFactory().openSession();
s.save(c);
s.close();
Je souhaite que l'enregistrement se face dans l'ordre suivant :
- enregistrement des commandes et produits
- enregistrement des lignes

J'ai l'erreur suivante à l'exécution :
org.hibernate.TransientObjectException: object references an unsaved transient instance - save the transient instance before flushing: Produit