Escaping colons in hibernate createSQLQuery
- by Stratosgear
I am confused on how I can create an SQL statement containing colons. I am trying to create a view and I am using (notice the double colons):
create view MyView as (
SELECT
tableA.colA as colA,
tableB.colB as colB,
round(tableB.colD / 1024)::numeric, 2) as calcValue,
FROM
tableA, tableB
WHERE
tableA.colC = 'someValue'
);
This is a postgres query and I am forced to use the double colons (::) in order to correctly run the statement.
I then pass the above statement through:
s.createSQLQuery(myQuery).executeUpdate();
and I get a:
Exception in thread "main" org.hibernate.exception.DataException: \
could not execute native bulk manipulation query
at org.hibernate.exception.SQLStateConverter.convert(\
SQLStateConverter.java:102)
... more stacktrace...
with an output of my above statement changed as (notice the question mark):
create view MyView as (
SELECT
tableA.colA as colA,
tableB.colB as colB,
round(tableB.colD / 1024)?, 2) as calcValue,
FROM
tableA, tableB
WHERE
tableA.colC = 'someValue'
);
Obviously, hibernate confuses my colons with named parameters.
Is there a way to escape the colons (a google suggestion that mentions that a single colon is escaped as a double colon does NOT work) or another way of running this statement?
Thanks.