Grails 2.5.1 (hibernate 3) оценивает множественные объединения в одну таблицу
Я нашел похожие вопросы, но ответов нет.
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: дубликат пути ассоциации: productData