Bonjour,
Je cherche à faire une classe héritant de HashSet, (et donc un interface héritant de Set), pour mes entités.
(Précision j'utilise JPA pour la persistence, et l'application est déployée sur un serveur glassfish.)
Je m'explique j'ai comme classes:
- Client
- Contact (extends Personne)
- ChargeAaffaire (extends Personne)
Ces classes ont une propriété:
private Set<Affaire> affaires;
Or la classe Affaire est une classe Mère.
OffrePrix et Commande héritent de Affaire.
Expertise hérite de OffrePrix.
J'ai donc tous les types d'affaire dans ma propriété affaires, ce qui est voulu pour le moment.
Maintenant j'aimerais pouvoir limiter les résultats selon certains critères:
OffresEnCours, OffresDeclinee, OffresPasseEnCommande, OffresASuivre, CommandesEnCours, CommandeLivrees....
J'ai donc créé Une classe Affaires qui hérite de HashSet et dans laquelle je défini les différents getters:
1 2 3 4 5 6 7 8 9
| public class Affaires extends HashSet<Affaire>{
public Set<Affaire> getAffaireEnCours(){}
public Set<Commande> getCommandeEnCours(){}
public Set<Expertise> getExpertiseEnCours(){}
public Set<OffrePrix> getOffrePrixEnCours(){}
public Set<OffrePrix> getOffrePrixDeclinee(){}
public Set<OffrePrix> getOffresEnCommande(){}
public Set<OffrePrix> getOffresASuivre(){} |
Ceci dans l'objectif de pouvoir obtenir ces affaires "filtrées" dans ma page jsf par exemple:
<h:dataTable value="#{clientMB.client.offreEnCours}"....
J'ai essayé et cela ne veut pas se déployer. J'obtiens cette erreur durant le déployement:
Exception Description: The target entity of the relationship attribute [affaires] on the class [class com.enregistrementAffaires.entites.ChargeAffaire] cannot be determined. When not using generics, ensure the target entity is defined on the relationship mapping.
Si je comprend bien, c'est parce que dans la classe ChargeAffaire, la propriété qui contient la collection n'est pas générique, et donc qu'il ne sait pas faire le "mappedBy = "chargeAffaire"" sur ma classe Affaires. Exact?
Donc comment puis-je y remédier?
Et sinon que me conseillerez-vous de faire pour pouvoir obtenir/extraire les différents types d'affaire(Design Pattern, architecture,....)? Ou bien cela ne doit pas du tout être fait de cette façon mais plutôt de définir les Query dans mon stateless Bean? Je suis ouvert à toutes solutions intéressantes.
Merci beaucoup
Partager