Bonjour.
Je souhaite mettre en place ceci :



Nous avons donc transfert qui hérite de evenement.
Et ce que je souhaite mettre en place c'est une trace des transferts que ça soit expéditeur ou destinataire.
Par exemple si on envoie un colis dans un magasin, deux transfert vont être crée (un en destinataire dans un magasin, un en expéditeur dans l'autre magasin).

Pour mettre en place cela j'écris dans mon entity magasin :
Code Java : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
@OneToMany(mappedBy = "magasin", fetch = FetchType.LAZY)
    private List<Transfert> transfertExpediteur;
    @OneToMany(mappedBy = "magasin", fetch = FetchType.LAZY)
    private List<Transfert> transfertDestinataire;

et mon entity transfert :
Code Java : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
@ManyToOne(fetch=FetchType.EAGER)
    @JoinColumn(name = "id_magasinExpediteur", nullable = false)
    private Magasin magasinExpediteur;
    @ManyToOne(fetch=FetchType.EAGER)
    @JoinColumn(name = "id_magasinDestinataire", nullable = false)
    private Magasin magasinDestinataire;

Mais bon cette solution ne peut pas fonctionner j'imagine car dans magasin il ne sait pas comment reconstruire la bonne liste.
Bon du coup j'ai crée deux nouvelles entity hérités de Transfert :

Code Java : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
@OneToMany(mappedBy = "magasin", fetch = FetchType.LAZY)
    private List<TransfertExpediteur> transfertExpediteur;
    @OneToMany(mappedBy = "magasin", fetch = FetchType.LAZY)
    private List<TransfertDestinataire> transfertDestinataire;

Mais ça ne fonctionne pas à l'exécution j'ai droit à l'erreur suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
Exception Description: predeploy for PersistenceUnit [persistence] failed.
Internal Exception: Exception [TOPLINK-7154] (Oracle TopLink Essentials - 2.0.1 (Build b04-fcs (05/27/2008))): oracle.toplink.essentials.exceptions.ValidationException
Exception Description: The attribute [transfertDestinataire] in entity class [class toto.sheldon.entity.Magasin] has a mappedBy value of [magasin] which does not exist in its owning entity class [class toto.sheldon.entity.TransfertDestinataire]. If the owning entity class is a @MappedSuperclass, this is invalid, and your attribute should reference the correct subclass.
Bref je suis un peu perdu, et je ne vois pas comment mettre tout cela en place.