【问题标题】:GORM or block with 3 conditions具有 3 个条件的 GORM 或块
【发布时间】:2014-01-27 11:43:10
【问题描述】:

如何在 GORM createCriteria 中指定或阻止 3 个条件。在或块中,如果我们像下面这样指定,

Domain.createCriteria.list(params){
or{
   collection1{
      //conditions for collection 1
   }
   collection2{
     //conditions for collection 2
   }
   collection3{
    //conditions for collection 3
  }
 }
}

编辑:

当我使用 same 域类的属性或条件时,这种类型的或条件适用于我。但是当我在或块中使用集合(一对多)时,这是行不通的。

【问题讨论】:

  • 你自己试过了吗?如果失败,错误信息是什么?
  • 没有错误信息,结果不正确,跳过了一些结果。不是在第三个条件下添加数据,而是通过其他两个条件减少数据。
  • 我认为你必须传递正确的价值观,慢慢来,一次或多次检查一切
  • 代码显示数据,在所有块中都是通用的。
  • 我认为在块内它是'AND'逻辑

标签: grails grails-orm criteria


【解决方案1】:

试试这个,它就像魅力一样工作。

try {
        def criteria = App.createCriteria();
        def app = criteria.list {
            /*eq("id",1 as long)*/
            or {
                // org is collection
                org {
                    eq("id",1 as long)
                }
               //usr is collection
                usr {
                    eq("id",1 as long)
                }
            }
        }
        println(app)
    }

你有没有自己尝试过什么是问题

【讨论】:

  • @user2463026 来自您的评论,我的建议是检查您的数据库值
猜你喜欢
  • 1970-01-01
  • 2015-06-07
  • 1970-01-01
  • 2020-01-20
  • 1970-01-01
  • 2014-05-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多