2011-12-02 2 views
0

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

У меня есть 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, событие, участник}

.

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

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

Спасибо.

+0

Это было полное заявление. Ответ JB Nizet - именно то, что я искал. Спасибо – Stef

ответ

1

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

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

слишком просто, спасибо! ;) – Stef

Смежные вопросы