gpt4 book ai didi

java - 使用 Hibernate 在 PostgreSQL 中进行 JSON 键搜索

转载 作者:搜寻专家 更新时间:2023-10-31 20:18:23 29 4
gpt4 key购买 nike

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

{"name":"xx"}

我想使用 Hibernate 对该字段执行全文搜索。有什么办法可以做到这一点?我遵循了一些示例,但没有任何效果。

最佳答案

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

目前看来您需要使用以下方法之一来使用 native 查询:

如果您使用的是 native Hibernate 接口(interface)而不是 JPA 接口(interface),则有 Hibernate 等同于上述所有内容 - 在映射中命名 native 查询,通过 Session 对象创建 native 查询,或展开Session 获取 java.sql.Connection

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

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

关于java - 使用 Hibernate 在 PostgreSQL 中进行 JSON 键搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32558722/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com