如何在 HibernateTools 插件的 HQL 编辑器中绑定数组参数?查询参数类型列表不包括数组或集合。
例如:
Select * from Foo f where f.a in (:listOfValues)
。
如何将数组绑定到该 listOfValues?
你可能不能。Hibernate 用它自己的对象(代理的种类)替换它从数据库中获取的对象。我强烈认为 Hibernate 不能用数组做到这一点。因此,如果您想绑定数组数据,请将其放入 Hibernate 访问的 List 中。
例如,可以这样做:
select * from Foo f where f.a in f.list
这就是将列表传递给 HQL 查询的方式。我不熟悉 HQL 编辑器……我们来自 Nhibernate 世界。
select * from Foo f where f.a in (:foolist)
query.SetParameterList("foolist", list)
我相信您已经得到了答案,但对于其他查看此内容的人来说。似乎休眠工具的 HQL 编辑器不支持查询集合。在 Hibernate Tools HQL 编辑器中进行测试时,您不必使用该参数并对其进行硬编码
Select * from Foo f where f.a in (123,1234)
当您将查询放回代码中时,将查询更改回发布的内容。