2015-06-06 2 views
1

Я пытаюсь создать запрос HQL, который использует возможности postgress json для поиска.Escaping colon ":" in Hibernate/Postgres/JSON

В прямой SQL, следующие работы, как и ожидалось:

sb.append("select...<blah>, regexp_split_to_table(fe.meta::json->>'elementName', ',') ... 

Я попробовал все комбинации спасаясь, что «:: JSON» Я могу найти в Интернете.

sb.append("select...<blash>, regexp_split_to_table(fe.meta\\:\\:json->>'elementName', ',') ... 

:\\: 
\\:: 

используя !:!:, а затем добавить побег !

Вне зависимости от комбинаций, я либо получить недопустимый запрос, не все названные параметры были установлены или Space не допускается после префикса параметра

Есть любой другой метод там?

Любая помощь очень ценится!

ответ

4

x::json просто PostgreSQL-специфичным способом литья x к json, вы не должны использовать синтаксис ::, если вы не хотите или если вы не можете, потому что кто-то хочет использовать двоеточие для именованных параметров , Вы всегда можете использовать простой старый стандарт: :

cast(fe.meta as json)->>'elementName' 
+0

WOOO HOOO !!!!!!!!!!!!! – TexasJJJJJ