是否可以将整个地图对象传递给HQL查询而无需迭代它?如果我不得不想,可能会有更清洁的方式。
例如:
def aMap = ["foo":"bar", "bar":"foo"]
Foo.executeQuery("select p from p where p.bar in (:mapObj)", [mapObj: aMap])
然后让它自动使用aMap上的键吗?
如果我尝试它只会抛出此错误:
请记住,序数参数是 1为本!
答案 0 :(得分:2)
这个神秘的错误说executeQuery()
只需要一个不同的Map作为最后一个参数 - 使用不同的数据类型或键名。
不,它不会自动使用Map的键。如果它曾经这样做,我认为它应该使用values()
代替。无论如何,这将是违反直觉的。
因此,只需使用aMap.keySet()
,就可以从Map
获得绝对最低的开销。