gpt4 book ai didi

grails - 如何在 grails 项目中使用 Findall(closure)

转载 作者:行者123 更新时间:2023-12-05 00:26:17 24 4
gpt4 key购买 nike

我一直在尝试向我的 grails 项目添加搜索功能,但遇到了一些障碍。

这是我的域类

class Worker{
String name
}

这是我的 Controller
package main

class SiteController {

def search()
{
def results = Worker.findAll{
it.name ==~ /.*John.*/
}

[results:results]
}
}

我试图弄清楚如何使用 findAll(closure) 函数,但是我在任何地方都找不到示例,也无法通过测试来弄清楚,我只想通过我在闭包中放入的测试标准。

编辑 1

我遇到了另一个问题,出于某种原因,每当我在正则表达式中使用任何特殊字符时,例如 [. * ?] 或其中任何一个,我的 findAll 不返回任何内容。如果我有一个叫“约翰史密斯”的 worker ,我愿意
name ==~ /John Smith/

它可以正常工作,但是如果我使用任何特殊字符,例如
name ==~ /John.*/

甚至
name ==~ /John S.ith/

它不起作用,这非常令人困惑,并且正则表达式也可以正常工作,因为它们也应该在 findall 函数之外,如果您能对此提供一些见解,那将非常有帮助

最佳答案

示例 in the docs表明您直接引用了该属性:

// Use where criteria (since Grails 2.0)
def results = Person.findAll {
lastName == "Simpson"
}

因此适用于您的查询:
def results = Worker.findAll{
name ==~ /.*John.*/
}

关于grails - 如何在 grails 项目中使用 Findall(closure),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22395255/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com