Bonjour,

J'ai un petit soucis là, j'ai du mal à mapper le problème suivant (j'dois mal m'y prendre)

Prenons 3 entités (c'est un exemple, mais l'idée est là) :
Personne
Peintre
Carreleur

Un peintre est une personne.
Un carreleur est une personne.
Une personne peut être un peintre ET un carreleur.
Une personne peut aussi n'être rien du tout (juste une personne, sans "rôle" particulier)

Illustration :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
table personne     table peintre     table carreleur
id                      id                     id
1                        1                      2          
2                        4                      4 
3                                               5                      
4
5

Comment je mappe ça avec JPA ?

J'ai essayé de la manière suivante, mais c'est pas bon, puisque chaque entrée est unique (un peintre ne peut pas être un carreleur) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
@Entity
@Inheritance(strategy = InheritanceType.JOINED)
public class Personne extends AbstractEntity
 
@Entity
public class Peintre extends Personne
 
@Entity
public class Carreleur extends Personne
Bien évidemment si j'essaye de faire ça, c'est parce que la personne a ses méthodes propres, le peintre aussi et le carreleur également...

Mais j'm'y prends ptete mal, y'a ptete un design pattern qui réponds mieux que l'héritage à ce problème ?