0

想象一下,我有一棵像这样的嵌套树

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 = invoices*.item*.product*.vendor.find{ i.id == 3}

4

1 回答 1

0

每个都spread将属性收集到一个列表中,因此,您的最后一个将在 a offind {}中寻找结果。您可以展平列表:listlistsvendor

def vendor = invoices*.items*.product*.vendor.flatten().find { it.id == 3 }
assert vendor
于 2013-05-31T00:36:19.727 回答