我对Hibernate Native Query有问题。我有一个选择,它选择数组切片(PostgreSQL数据库)。
问题在于hibernate状态识别以下部分:来自“ SELECT my_array [1:300] …”的“:300”作为命名参数,并且我得到以下异常:尚未设置所有命名参数。
我试图用’:’,’::’逃脱冒号(:),但没有成功。
Hibernate版本是3.2
我不使用PostgreSQL,但是如果您没有找到解决此问题的合适方法,则可以实现拦截器(扩展EmptyInterceptor)并在上修改查询onPrepareStatement(String sql)。
onPrepareStatement(String sql)
这意味着您可能正在使用类似方法my_array[1|300]并对其进行重写,my_array[1:300]以解决命名参数问题。
my_array[1|300]
my_array[1:300]
编辑 :我不是100%确信上面的工作(重写本机SQL和查询解析器是否将允许特殊字符)。我仅在HQL和条件中完成了上述操作,在该条件中我将索引提示作为查询注释进行传递。