6
我有这样一个类:获取所有对象的ID列表中的
class Foo {
String bar
}
我试图让所有的Foo
对象,其bar
字符串是列表bars
的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 }
UPDATE:
我正在bars
与split如此它是一个数组,而不是一个列表。它把我扔了,因为Foo.findAllByBarInList(bars)
返回我的Foo
对象就好了,只有当我试图收集ID时才会失败。我现在使bars
与tokenize,而一切都很好。
我将groovy标记添加回此问题,因为'collect'方法和spread运算符'* .'都基于groovy。 – ubiquibacon 2012-07-17 18:54:06
您确定您正在检查的列表是否正确设置为列表?使用'def ids = Foo.findAllByBarInList(bars)*。id'适用于我。 – Kelly 2012-07-17 18:56:50
自从Grails使用Groovy以来,我不再使用Groovy标签,因此它不是必需的,它只是在Grails中使用Groovy,而不是Groovy特定的问题。没有Grails经验的Groovy专家无法为您提供帮助。同样,你可以省略Java,GORM,Hibernate,Spring,编程标签;) – 2012-07-17 18:58:45