繁体   English   中英

使用Hibernate在PostgreSQL中进行JSON密钥搜索

[英]JSON key search in PostgreSQL using Hibernate

我有一个JSON字段data包含以下数据-

{"name":"xx"}

我想使用Hibernate在这个字段上执行全文搜索。 有什么办法可以实现吗? 我按照一些例子,但对我没什么用。

理想情况下,Hibernate将通过JPQL / HQL和/或Criteria查询对JSON对象内部进行查询。 目前情况似乎并非如此(5.0.1)。

看起来您现在需要使用以下方法之一来使用本机查询:

如果您使用的是本机Hibernate接口而不是JPA接口,那么Hibernate等同于映射中的所有上述命名本机查询,通过Session对象创建本机查询,或者解包Session以获取java.sql.Connection

在所有这些情况下,您需要使用PostgreSQL特定的运算符? ->>用于查询json和常规SQL,而不是JPQL / HQL。 请参阅postgresql json运算符 请注意,JSON功能在9.3中引入并在9.4和9.5中得到增强,因此请检查您的版本是否具有所需的功能。

例如,你可以使用myjsoncolumn ? 'key' jsonb在9.4+中的myjsoncolumn ? 'key' 对于普通的json类型,您需要使用(myjsoncolumn -> 'key') IS NULL 使用-> not ->>很重要因为->{"a":null}这样的对象返回一个json null对象,另一个返回NULL ,所以你不能区分{"a":null}{}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM