gpt4 book ai didi

Grails gorm 'where' 查询使用 'lower()' 和 'in' 运算符

转载 作者:行者123 更新时间:2023-12-01 03:35:57 25 4
gpt4 key购买 nike

我有一个域类

class Hashtag {
String tag
}

为什么
Hashtag.where { lower(tag) == "#london" }.list()

工作正常,但是
Hashtag.where { lower(tag) in [ "#london", "#paris" ] }.list()

结果是
org.springframework.dao.InvalidDataAccessResourceUsageException: Unsupported function [lower] defined in query for property [hashtag] with type [class java.lang.String]
如何正确编写这样的查询?

谢谢!

最佳答案

我无法回答为什么使用 lower()in()不工作。我读了 source但我不太了解 AST,无法理解它。

但是,要解决您的问题,您可以使用 derived property执行 lower() .

class Hashtag {
String tag
String loweredTag

static mapping {
loweredTag formula: 'lower(tag)'
}
}

然后您可以在 where 查询中使用派生属性:
Hashtag.where { loweredTag in [ "#london", "#paris" ] }.list()

关于Grails gorm 'where' 查询使用 'lower()' 和 'in' 运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34845541/

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