【问题标题】:Grails criteria query checking `OR` logicGrails 标准查询检查“或”逻辑
【发布时间】:2014-09-10 14:26:26
【问题描述】:

我有 grails criteriaQuery 在那里我正在检查 OR 逻辑,反对这样的单个状态变量:

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

这段代码运行良好,我的问题是,当我再次检查OR 逻辑时,有没有办法像这样优化这段代码

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

提前致谢。

【问题讨论】:

  • 请改用'in'("status", [Status.ONE, Status.TWO, Status.THREE])。或者只是 'in'("status", Status.values()) 如果 Status 是一个值 ONE、TWO 和 THREE 的枚举。
  • @dmahapatro 谢谢你,我会试试的,我遇到了其他问题
  • @dmahapatro 您可以添加您的评论作为答案,这是正确的
  • @dmahapatro,您对此有任何想法stackoverflow.com/questions/25812376/…

标签: grails grails-orm criteria


【解决方案1】:

你可以使用

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

或者只是

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

如果Status 是一个枚举值,其值为 ONE、TWO 和 THREE。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-07
    • 2018-04-16
    • 2016-04-20
    相关资源
    最近更新 更多