7 votes

JPA (et héritage) : comment obtenir toutes les entités d'une superclasse donnée ?

Étant donné les définitions d'entités suivantes :

@Entity
class abstract A {
    Collection<A> parents;
}

@Entity
class B extends A {

}

@Entity
class C extends A {

}

est-il possible de définir une méthode qui renvoie toutes les entités de type B & C ayant un parent donné, sans de devoir faire deux appels distincts et de fusionner ensuite les résultats ?

Collection<A> getAllByParentId(long id)

13voto

Sean Patrick Floyd Points 109428

Cela devrait être aussi simple que cela :

List<A> results = entityManager
                      .createQuery("Select a from A a", A.class)
                      .getResultList();

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X