在 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'
我正在尝试建立一个使用 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'