【问题标题】:queries with hibernate使用休眠查询
【发布时间】:2010-01-22 08:25:59
【问题描述】:

我有一个包含 eventType 和 event Tables 的数据库

eventType 

  - id
  - name

event

  - id 
  - name
  - location
  - eventType_id
  - eventSubType_id

其中 eventType_id 和 eventTypeSubtype_id 引用 eventType 表。

我想用休眠做的是选择所有事件:

  • eventType in (2,6)
  • 和 eventSubType in (2,null)

我做到了:

EventCriteria.createCritria("eventType").add(Expression.in("id"),new Long [] {2L,6L});
EventCriteria.createCriteria("eventSubType").add(Expression.in("id", new Long [] {2L,null}));

输出不考虑具有 id (2 或 6) 且 eventSubType 为 null 的事件,它仅考虑具有 id (2 或 6) 且 eventSubType 为 (2) 的事件。输出必须是两者

谢谢

【问题讨论】:

  • 你尝试了什么但没有成功?
  • 只是一个建议,离开标准很丑陋,难以阅读和理解,使用 HQL 更好,因为它可读性强且非常接近 SQL。

标签: mysql hibernate


【解决方案1】:

假设您的 eventType 编号是 ids...

select event 
from Event event
where event.eventType_id in (2,6)
and (eventSubType is null
     or eventSubType = 2)

【讨论】:

    【解决方案2】:

    您使用了eq 而不是in...

    【讨论】:

      猜你喜欢
      • 2011-08-09
      • 1970-01-01
      • 2021-11-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多