Come faccio a selezionare una raccolta di entità e passarla a un bean come parametro usando EJBQL?
Domanda
Sto facendo alcuni rapporti strani da un archivio di dati JPA.
Devo selezionare (usando EJBQL) un elenco di oggetti. Questi oggetti contengono una raccolta di entità. Ho una classe che è costruita da:
FOOBean(String param1,
String param2,
List<Entity> listParam)
(notare che il terzo parametro è un elenco)
E voglio selezionare un elenco di questi bean usando GROUP BY
, recuperando listParam
, quindi vorrei scrivere una query che funzioni in questo modo:
SELECT new FOOBean(
e1.param1,
e1.param2,
e1)
FROM Entity e1
GROUP BY e1.param1, e1.param2
In modo che le entità raggruppate vengano recuperate in un elenco e inserite nel terzo parametro. È possibile farlo in questo modo o devo creare due query che selezionano coppie distinte di param1
e param2
; e recupera tutte le entità con valori param appropriati rispettivamente?
Soluzione
Non è possibile, almeno in JPA 1.0 (e dubito che in JPA 2.0 sia diverso).
Altri suggerimenti
Penso che sarebbe molto meglio recuperare l'oggetto in base alle tue condizioni & amp; quindi utilizza @oneToMany annotaion nella tua entità per impostare l'elenco.