想象一下,我有一个像这样的嵌套树
invoices{
invoice(date: new Date(106,1,2)){
item(count:5){
product(name:'ULC', dollar:1499){
vendor(id:1)
}
}
item(count:1){
product(name:'Visual Editor', dollar:499){
vendor(id:3)
}
}
}
invoice(date: new Date(106,1,2)){
item(count:4) {
product(name:'Visual Editor', dollar:499){
vendor(id:4)
}
}
}
我们假设我已将其转换为发票类列表的实例。现在,在供应商ID为3的树中返回 供应商类实例的最佳方法是什么?
这是错误的,但是像
供应商myVendor =发票* .item * .product * .vendor.find {i.id == 3}
答案 0 :(得分:0)
每个spread
会将属性收集到一个列表中,因此,您的上一个find {}
将在list
lists
中查找结果。您可以展平vendor
列表:
def vendor = invoices*.items*.product*.vendor.flatten().find { it.id == 3 }
assert vendor