2010-01-22 240 views
0

我有一個數據庫包括EVENTTYPE和事件表查詢與休眠

eventType 

    - id 
    - name 

event 

    - id 
    - name 
    - location 
    - eventType_id 
    - eventSubType_id 

其中eventType_id和eventTypeSubtype_id參照EVENTTYPE表。

什麼,我想與Hibernate做的是選擇具有所有事件:

  • EVENTTYPE在(2,6)
  • 和eventSubType(2,空)

我做:

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

輸出不考慮具有id爲eventype(2或6)和eventSubType爲空的事件,它僅考慮事件類型爲id(2或6)且eventSubType爲(2)的事件。輸出必須是

感謝

+0

和你嘗試什麼,沒不工作? – Bozho

+0

只是一個建議,離開標準是醜陋的,難以閱讀和理解,它更好地使用HQL,因爲它的可讀性和SQL非常接近。 –

回答

2

假設你EVENTTYPE數字是IDS ...

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