Grails 2.5.1 (Ruhezustand 3) Kriterien mehrere Verknüpfungen zu derselben Tabelle

Ich habe ähnliche Fragen gefunden, aber keine Antworten.

class SomeDomain {
    static hasMany= [productData:ProductData]
}

ProductData ist ein einfaches Typ / Wert-Paar

Ich versuche alle SomeDomains zu finden, die mehrere Produkte eines bestimmten Typs haben (in einer Schleife). Derzeit sieht der relevante Teil der Kriterien wie folgt aus:

SomeDomain.createCriteria.list {
  somedata.each { type, value ->
    productData {
      eq("type", type)
      eq("value", value)
    }
  }
}

Dies erzeugt jedoch nur einen einzigen Join mit der 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') 

Offensichtlich wird type_id niemals erfolgreich sein und prüft auf = 4 und = 5 ...

Was ich wirklich gerne hätte, sind zwei innere Verknüpfungen mit product_data ... ich kann jedoch nicht herausfinden, wie ich das erzwingen soll.

Ich habe versucht, createAlias ("productData", "product - $ {index}") zu erstellen. Dies ergab org.hibernate.QueryException: duplicate association path: productData

Antworten auf die Frage(2)

Ihre Antwort auf die Frage