grails - 如何以Groovier方式查询?

标签 grails groovy

我有User类,它具有一个字段type,该字段又是一个列表。

因此type可能类似于:["a","b"]
我还有另一个列表,像search这样说["c","b"](这是预定义的)

现在,我想要搜索的是我的User实例中的所有 ,以便可以找到与type中的任何元素匹配的用户search

我提出了部分解决方案:

def newQ = User.findAllByUsernameIsNotNull()
newQ.each { eachIndex ->
                    query = eachIndex.type
                    result = query.findAll { it == "c" }
                    if(result.size() > 0 )
                    {
                        ans << eachIndex.username
                    }
                  }

上面的代码有效,ans列表中所有满足我条件的User。但是您可以清楚地看到,在query.findAll行中,我只搜索search中的一个元素。我想针对search(这是queryUser字段)对所有type元素执行搜索操作。

我该如何实现?除了我的解决方案之外,还有什么简单的方法可以做到这一点?

提前致谢。

最佳答案

您可以执行以下操作:

def ans = []
search.each{s->
    ans += User.findAll("from User u where u.username is not null and ? in elements(u.type)",[s])
}

我想不出一种方法可以在单个查询中

关于grails - 如何以Groovier方式查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8752635/

相关文章:

validation - Grails 3 自定义错误对象

grails - Grails Layout,该怎么做?

grails - 使用XmlSlurper/GPathResult进行重大更改Grails 2.2.0-> Grails 2.3.5并选择具有未知 namespace 的attirbutes

chalice : data binding

grails - 覆盖 grails.views.default.codec ='html' 配置回 'none'

groovy - gradle 属性文件 - 放置新属性后如何保留评论?

excel - SOAPUI : unable to resolve class XSSFWorkBook error

jenkins - 如何将Groovy类导入Jenkinfile?

hibernate - 来自 grails 的带有 javaDB 和 Hibernate 的用户表

templates - Grails-如何使用选定的模板渲染 View ?