I have a problem with Hibernate Native Query. I have one SELECT that selects array slice (PostgreSQL database).
The problem is that hibernate recognizes the followin
MyInterceptor extends EmptyInterceptor
works as mentioned by cherouvim.
don't forget
<property name="hibernate.ejb.interceptor" value="MyInterceptor"/>
in persistence.xml
The colon is not escapeable in Hibernate itself (known Bug since 2005).
I don't use PostgreSQL but if you don't find a proper solution for this problem you can implement an interceptor (extend EmptyInterceptor) and modify your query on onPrepareStatement(String sql)
.
Which means that you could be using something like my_array[1|300]
and rewriting it as my_array[1:300]
to workaround the named parameters problem.
Edit: I'm not 100% sure the above works (rewriting native SQL and whether the query parser would allow the special character). I've only done the above in HQL and criteria where I was passing the index hint as a query comment.
create function array_slice(a anyarray, start int4, end int4) returns anyarray as
$$
SELECT a[start:end];
$$
language(sql);
Now call this function instead. Did not try it but it will work somehow like this.