Bonjour,

Je me tourne vers vous pour un problème de mapping dans mon application, voici la situation :

j aimerais arriver a réaliser un mapping JPA avec héritage assez particulier :

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
19
20
21
22
23
24
25
26
27
28
29
 
@MappedSuperclass
public class Mere{...}
 
@MappedSuperclass
public class Pere{
 
    private List<Mere> maList;
 
}
 
@Entity
@Table(name="fille")
public class Fille extends Mere implement serializable{...}
 
 
 
@Entity
@Table(name="fils")
public class Fils extends Pere implement serializable{
 
    ...
 
    @oneToMany
    public List<? extends Mere> getMaList(){...}
 
    public void setMaList(List<? extends Mere> pMaList)
 
}
Lorsque je lance mon Glassfish 4 (avec un JDK8), aucune erreur de mapping est remontée. Mais lorsque j essaye de lire un objet de type "Fils" l'erreur :impossible de trouver la table nommé "mere" (logique puisque j aimerais il regarde dans la table "fille").

Points à savoir
- il n'y aura jamais de classe Fille2 ou Fils2
- les class Pere et Mere viennent d'un package auto-généré (import XJC de JAXB) et donc je veux y toucher le moins possible (si ma solution est possible) pour le cas de futurs évolutions. Donc j'aimerais éviter l'utilisation de @inheritance qui oblige un DTYPE dans la BDD et une intervention lourde en cas d'évolution majeur.

J ai recherché sur le net des possibilités mais pour l'instant je fais choux blanc :'(. Donc si quelqu'un aurait déjà eu ce cas ou aurait des pistes pour résoudre mon problème, Je vous en remercie d'avance.


Si vous avez besoin d'autres informations, je suis évidement à votre disposition

ps: je travaille avec Oracle, EclipseLink, glassfish4, JPA2 et la JDK8