Hibernate HQL многие-ко-многим, не начиная с возвращенного объекта - PullRequest
0 голосов
/ 02 декабря 2011

Я пытаюсь получить коллекцию объектов, используя Hibernate, но я не уверен, как сформулировать запрос, так как не могу (или не знаю, как) начать с объекта, который я хочу вернуть.

У меня есть 3 класса:

    Participant
    Event
    EventRegistration

Связь между ними осуществляется EventRegistration, которое имеет отношение «многие к одному» с событием и отношение «многие ко многим» с участником.Это выглядит так:

EventRegistration.participants
EventRegistration.event

Я хотел бы написать запрос с использованием HSQL или Criteria API, чтобы получить всех участников для определенного события.

По сути, это будет выглядеть примерно так или иначе:

from EventRegistration er inner join er.event as ev inner join er.participants as p where ev.id=?

В любом случае, приведенный выше запрос возвращает массив объектов, содержащий один из этих объектов (например, Object [] {EventRegistration, Event, Participant}.

Я пытался найтикак это сделать по сети, но все примеры начинаются с возвращенного объекта. К сожалению, я не могу начать с объекта участника, так как нет прямой связи с ним с EventRegistration или Event.

Любая идея, какзаставить его вернуть только список участников?

Спасибо.

1 Ответ

1 голос
/ 02 декабря 2011

Используйте предложение выбора:

select p from EventRegistration er 
inner join er.event as ev 
inner join er.participants as p 
where ev.id = ?
...