一尘不染

具有命名参数的Hibernate本机查询问题

hibernate

我对Hibernate Native Query有问题。我有一个选择,它选择数组切片(PostgreSQL数据库)。

问题在于hibernate状态识别以下部分:来自“ SELECT my_array [1:300]
…”的“:300”作为命名参数,并且我得到以下异常:尚未设置所有命名参数。

我试图用’:’,’::’逃脱冒号(:),但没有成功。

Hibernate版本是3.2


阅读 204

收藏
2020-06-20

共1个答案

一尘不染

我不使用PostgreSQL,但是如果您没有找到解决此问题的合适方法,则可以实现拦截器(扩展EmptyInterceptor)并在上修改查询onPrepareStatement(String sql)

这意味着您可能正在使用类似方法my_array[1|300]并对其进行重写,my_array[1:300]以解决命名参数问题。

编辑
:我不是100%确信上面的工作(重写本机SQL和查询解析器是否将允许特殊字符)。我仅在HQL和条件中完成了上述操作,在该条件中我将索引提示作为查询注释进行传递。

2020-06-20