带有命名参数的Hibernate Native Query问题

dim*_*ime 8 java sql postgresql hibernate

我有Hibernate Native Query的问题.我有一个选择数组切片的SELECT(PostgreSQL数据库).

问题是hibernate识别以下部分:"SELECT my_array [1:300] ..."中的":300"作为命名参数,我得到以下异常:并未设置所有命名参数.

我试图用':','::'来逃避冒号(:),但没有成功.

Hibernate版本是3.2

che*_*vim 4

我不使用 PostgreSQL,但如果您没有找到解决此问题的正确解决方案,您可以实现拦截器(扩展 EmptyInterceptor)并修改onPrepareStatement(String sql).

这意味着您可以使用类似的东西my_array[1|300]并重写它来my_array[1:300]解决命名参数问题。

编辑:我不是 100% 确定上述方法有效(重写本机 SQL 以及查询解析器是否允许特殊字符)。我只在 HQL 和条件中完成了上述操作,其中我将索引提示作为查询注释传递。