我发现了类似的问题,但没有答案。
class SomeDomain {
static hasMany= [productData:ProductData]
}
ProductData 是简单的类型/值对
我正在尝试查找具有某种类型的多个产品的所有 SomeDomains(在循环中)。目前,标准的相关部分如下所示:
SomeDomain.createCriteria.list {
somedata.each { type, value ->
productData {
eq("type", type)
eq("value", value)
}
}
}
但是,这只会生成一个与 SQL 的连接:
from some_domain this_ inner join product_data productdata_a1_ on this_.id=productdata_a1_.some_domain_id
where (productdata_a1_.type_id=4 and productdata_a1_.value='GC')
and (productdata_a1_.type_id=5 and productdata_a1_.value='P1')
显然 type_id 永远不会成功并且会检查 =4 和 =5...
我真正想要的是 product_data 的两个内部连接......不过,无法弄清楚如何强制执行此操作。
我试过 createAlias("productData", "product-${index}") 这给了 org.hibernate.QueryException: duplicate association path: productData