2014-09-10 55 views
2

我具有的grails criteriaQuery其中我檢查OR邏輯againist單個狀態變量是這樣的:Grails的條件查詢檢查`或`邏輯

or { 
    eq("status", Status.ONE) 
    eq("status", Status.TWO) 
    eq("status", Status.THREE) 
    } 

此代碼工作正常,我的問題是,因爲我檢查OR邏輯againist單個狀態,是否有任何方式預先優化該代碼等

eq("status",Status.ONE || Status.TWO || Status.THREE) 

感謝。

+3

改爲在'('status',[Status.ONE,Status.TWO,Status.THREE])中使用''。或者只是''in'(「status」,Status.values())'如果'Status'是一個枚舉值爲ONE,TWO和THREE的枚舉。 – dmahapatro 2014-09-10 14:30:22

+0

@dmahapatro謝謝你我會嘗試,我卡在一些其他問題 – 2014-09-10 14:35:21

+0

@dmahapatro您可以添加您的評論作爲答案,這是正確的 – 2014-09-12 15:05:32

回答

3

您可以使用

'in'("status", [Status.ONE, Status.TWO, Status.THREE]) 

或者只是

'in'("status", Status.values()) 

如果Status是值的一個枚舉,TWO THREE &。