Bon j'ai quelque question a propos du mapping lorsqu'on a l’héritage.

bon voila une photo qui montre un petit exemple.
Nom : 893652402.jpg
Affichages : 109
Taille : 33,5 Ko

et voila mes classes et leur mapping:


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
@Entity
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
public class Produit implements Serializable{
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;
    @Column(nullable = false)
    @NotNull
    private String title;
    @Column(nullable = false)
    @NotNull
    private Integer price;
}
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
@Entity
public class Livre extends Produit  implements Serializable{
    @Column(nullable = false)
    @NotNull
    private String isbn;
    @Column(nullable = false)
    @NotNull
    private String language;
}

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
@Entity
public class lignedecommande implements Serializable {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;
    @Column(nullable = false)
    private Integer quantity;
    @OneToOne
    @JoinColumn(name = "produit_fk", nullable = false)
    private Produit produit
}
j'ai mis que les 3 classes car mes questions les concernent .

supposons que je crée un produit avec id=1,
et je crée un livre avec id =1.
et je crée un CD avec id =1.

lorsque je crée un ligne de commande avec fk=1 alors c'est le produit avec id=1 qui sera référencé dans la table lignedecommande.
comment je peux référencé un Livre ou un CD dans la table lignedecommande surtout que la table livre et CD n'ont pas de relation directe avec ligndecommande.
je sais pas comment faire surtout plu-tard je devrais faire des requêtes .
Merci.