【问题标题】:hibernate HQL many-to-many not starting from the returned object休眠 HQL 多对多不是从返回的对象开始
【发布时间】:2012-01-11 11:20:34
【问题描述】:

我正在尝试使用 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 没有直接联系。

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

谢谢。

【问题讨论】:

  • 这就是完整的声明。 JB Nizet 的答案正是我想要的。谢谢

标签: hibernate many-to-many hql


【解决方案1】:

使用选择子句:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多