2

如何在 HibernateTools 插件的 HQL 编辑器中绑定数组参数?查询参数类型列表不包括数组或集合。

例如:
Select * from Foo f where f.a in (:listOfValues)
如何将数组绑定到该 listOfValues?

4

4 回答 4

1

你可能不能。Hibernate 用它自己的对象(代理的种类)替换它从数据库中获取的对象。我强烈认为 Hibernate 不能用数组做到这一点。因此,如果您想绑定数组数据,请将其放入 Hibernate 访问的 List 中。

例如,可以这样做:

select * from Foo f where f.a in f.list
于 2008-09-23T05:41:15.640 回答
0

这就是将列表传递给 HQL 查询的方式。我不熟悉 HQL 编辑器……我们来自 Nhibernate 世界。

select * from Foo f where f.a in (:foolist)

query.SetParameterList("foolist", list)
于 2011-09-02T04:58:43.220 回答
0

我相信您已经得到了答案,但对于其他查看此内容的人来说。似乎休眠工具的 HQL 编辑器不支持查询集合。在 Hibernate Tools HQL 编辑器中进行测试时,您不必使用该参数并对其进行硬编码

Select * from Foo f where f.a in (123,1234)

当您将查询放回代码中时,将查询更改回发布的内容。

于 2011-07-26T17:01:51.317 回答
0

休眠视角

在休眠透视图中,您可以在左侧看到输入查询参数的左侧面板,当您在字段中输入 :variable 并运行查询时,您将得到结果

于 2017-08-03T11:17:55.697 回答