2009-05-06 6 views
1

Je fais des rapports bizarres à partir d'un magasin de données JPA.Comment sélectionner une collection d'entités et la passer à un bean en tant que paramètre en utilisant EJBQL?

Je dois sélectionner (en utilisant EJBQL) une liste d'objets. Ces objets contiennent une collection d'entités. J'ai une classe qui est construit par:

FOOBean(String param1, 
    String param2, 
    List<Entity> listParam) 

(remarquez que troisième paramètre est une liste)

Je veux sélectionner une liste de ces fèves à l'aide GROUP BY, aller chercher listParam le long, donc je voudrais écrire une requête qui fonctionne comme ceci:

 SELECT new FOOBean(
       e1.param1, 
       e1.param2, 
       e1) 
       FROM Entity e1 
       GROUP BY e1.param1, e1.param2 

Alors que les entités regroupées sont extraites dans une liste et insérée dans le troisième paramètre. Est-il possible de le faire de cette façon ou dois-je créer deux requêtes qui sélectionne des paires distinctes de param1 et param2; et récupère toutes les entités avec des valeurs param appropriées?

Répondre

1

Ce n'est pas possible, au moins dans JPA 1.0 (et je doute que dans JPA 2.0 c'est différent).

+0

Malheureusement, c'est vrai. –

0

Je pense qu'il serait préférable de récupérer l'objet en fonction de votre condition & puis d'utiliser @oneToMany annotaion dans votre entité pour configurer la liste.

Questions connexes