在 Hibernate/Postgres/JSON 中转义冒号“:”

Escaping colon ":" in Hibernate/Postgres/JSON

我正在尝试建立一个使用 postgress json 搜索功能的 HQL 查询。

直接 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

还有其他方法吗?

非常感谢任何帮助!

x::json 只是一种将 x 转换为 json 的特定于 PostgreSQL 的方式,如果您不这样做,则不必使用 :: 语法想要或者如果你不能,因为有人想对命名参数使用冒号。您始终可以使用普通的旧标准 cast 代替:

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