【发布时间】:2015-07-14 05:53:53
【问题描述】:
我一直在尝试使用多个 hasMany 对象进行查询,例如:
def product = Product.createCriteria().list {
createAlias("productAttributeValues", "pav")
and {
if (session.filters?.filter_instore) {
and {
eq("pav.attribute", Attribute.findByCode("instore"))
eq("pav.valueDe", session.filters?.filter_instore?.toString())
}
}
if (session.filters?.filter_promo) {
and {
eq("pav.attribute", Attribute.findByCode("promo"))
eq("pav.valueDe", "1")
}
}
}
}
这似乎不起作用,因为我从来没有得到结果集,尽管我有匹配的测试数据。看来问题是我用相同的对象查询了两次。
一种可能的解决方案是单独查询 productAttributeValues,然后与 "in"("myPavs", pavs) 相交 - 但这对我来说似乎效率低下。
有什么想法吗? 谢谢。
【问题讨论】:
-
是
Product.productAttributeValues(hasMany) 集合吗? -
是的,它是一个 hasMany 集合。
标签: grails grails-orm