hibernate HQL多对多不是从返回的对象开始的

时间:2011-12-02 12:12:35

标签: hibernate many-to-many hql

我正在尝试使用Hibernate获取对象集合,但我不确定如何制定查询,因为我不能(或不知道如何)从我想要返回的对象开始。

我有3个班级:

    Participant
    Event
    EventRegistration

它们之间的联系由EventRegistration完成,它与Event有多对一的关系,与Participant有多对多的关系。它看起来像这样:

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数组,其中包含每个对象中的一个(如Object [] {EventRegistration,Event,Participant}。

我确实尝试通过网络找到如何执行此操作,但所有示例都从返回的对象开始。不幸的是,我无法从Participant对象开始,因为它没有与EventRegistration或Event的直接连接。

知道如何让它只返回参与者列表吗?

感谢。

1 个答案:

答案 0 :(得分:1)

使用select子句:

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