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

Ответы на вопрос(1)

Ваш ответ на вопрос