用hibernate查询

时间:2010-01-22 08:26:00

标签: mysql hibernate

我有一个数据库包括eventType和事件表

eventType 

  - id
  - name

event

  - id 
  - name
  - location
  - eventType_id
  - eventSubType_id

其中eventType_id和eventTypeSubtype_id引用eventType表。

我想用hibernate做的是选择所有具有以下内容的事件:

  • 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)的eventype且eventSubType为null的事件,它仅考虑具有id(2或6)的eventtype且eventSubType为(2)的事件。输出必须是

谢谢

2 个答案:

答案 0 :(得分:2)

假设您的eventType数字是ids ...

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

答案 1 :(得分:0)

您使用eq代替in ...