jb.
jb.

Reputation: 23995

How do I select a collection of entities and pass it to a bean as a parameter using EJBQL?

I'm doing some weird reporting from a JPA data store.

I need to select (using EJBQL) a list of objects. These objects contain collection of entities. I have a class that is constructed by:

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

(notice that third parameter is a list)

And I want to select a list of these beans using GROUP BY, fetching listParam along, so I would like to write a query that works like this:

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

So that grouped entities are fetched into a list and inserted into the third parameter. Is it possible to do it that way or do I have to create two queries that selects distinct pairs of param1 and param2; and fetches all entities with appropriate param values respectively?

Upvotes: 1

Views: 1167

Answers (2)

jb.
jb.

Reputation: 23995

It is not possible, at least in JPA 1.0 (and I doubt that in JPA 2.0 it is different).

Upvotes: 1

Nayan Wadekar
Nayan Wadekar

Reputation: 11622

I think it would be much better to retrieve the object based on your condition & then use @oneToMany annotaion in your entity to set up the list.

Upvotes: 0

Related Questions