不确定为什么需要多个连接到同一个表?如果问题理解正确
String query="from someDomain sd join productData pd where pd.type in (:types) and pd.value in (:values) "
def inputParams=[:]
inputParams.values=['GC','P1']
inputParams.types=[4,5]
List resultsList = SomeDomain.executeQuery(query,inputParams,[readOnly:true,timeout:15])
pd.type 可能必须是另一个连接,因为在调试中它尝试获取 .id,因此添加另一个连接
String query="from someDomain sd join productData pd join pd.types tp where tp.id in (:types) and pd.value in (:values) "
如果您想按照问题中的建议进行多次联接
String query="from someDomain sd join productData pd join pd.types tp, ProductData pd2 where tp.id in (:types) and pd.value in (:values) and pd2.something=pd.something"
然后开始查找链接到某个域的产品数据,然后再次查找整个域ProductData as pd2
然后确认在哪里pd2.something = pd.something
在 HQL 中使用逗号成为与现有查询无关的新查找。