Grails Groovy gsp:合并列表
我正试图在普惠制中将许多名单合并成一个单一的名单。例如:Grails Groovy gsp:合并列表,grails,groovy,gsp,Grails,Groovy,Gsp,我正试图在普惠制中将许多名单合并成一个单一的名单。例如: 类A有一个B类实例列表 当我尝试使用表达式:${a.findAll(some_condition).b}时,我得到的是b的实例列表 我希望表达式返回一个列表,其中b的所有实例都属于满足某些条件的a,您可以尝试: ${a.findAll(some_condition).b.flatten()} 这会给你一张单子 ${a.findAll(some_condition).b.flatten().unique()} 还应删除重复项等待。如果a
${a.findAll(some_condition).b}
时,我得到的是b的实例列表b
的所有实例都属于满足某些条件的a
,您可以尝试:
${a.findAll(some_condition).b.flatten()}
这会给你一张单子
${a.findAll(some_condition).b.flatten().unique()}
还应删除重复项等待。如果a.findAll返回一个对象的集合,为什么直接在集合中调用属性b?这行得通吗?它不应该像:${yourList*.b}???@TiagoFarias*
是可选的。我不知道。我想这会让你更快乐。如果这是常规groovy对象,那么Tim的答案是最好的。如果A
和B
是具有关系的域对象,则可以使用projections
()或HQL获得与某些A
相关的所有B
实例,这些实例满足条件。@TiagoFarias*。
符号并非在所有情况下都是无用的。对于属性,它是可选的(例如:foos.name
或foos*.name
都返回一个name
值的列表),但是如果要对所有内容运行方法,则需要使用*。
,(例如foos*.toString()
,没有*。
它会调用列表中的字符串,而不是每个单独的值)。这正是我想要的。谢谢