gpt4 book ai didi

grails - 获取列表中所有对象的ID

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

我有一堂这样的课:

class Foo {
String bar
}

我正在尝试获取 bar 字符串位于列表 bars 中的所有 Foo 对象的 ID。我尝试了几种方法,总是收到相同的错误:

java.lang.String cannot be cast to java.util.Collection

我尝试过的一些事情:

def ids = Foo.findAllByBarInList( bars )*.id
def ids = Foo.findAllByBarInList( bars ).collect{ it.id }
def ids = Foo.findAllByBarInList( bars ).collect{ it -> it?.id }

更新:

我正在用 split 制作所以它是一个数组,而不是一个列表。它让我失望,因为 Foo.findAllByBarInList(bars) 返回了我的 Foo 对象,只是当我尝试收集 id 时才失败。我现在用 tokenize 制作相反,一切都很好。

最佳答案

只要 bars 是一个列表,这对我就有效

def bars = ['bar1', 'bar3']
def ids = Foo.findAllByBarInList(bars)*.id

但是,如果您想要的只是 id 字段,那么从数据库中提取整个域类实例是一种浪费。目前只有一个字段,但实际上它可能是一个更大的表。所以我会使用 HQL 查询:

def ids = Foo.executeQuery(
'select f.id from Foo f where f.bar in (:bars)',
[bars: bars])

关于grails - 获取列表中所有对象的ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11528759/

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