【问题标题】:look for json key's value in jsonb在json中查找json键值
【发布时间】:2019-01-07 05:19:37
【问题描述】:

我正在使用 jpa 的标准构建器,我想在 jsonb 列中查找 json 字段的值。 jsonb 看起来像这样:

[{"field1":"value1","field2":"value2"},{"field3":"value3","field4":"value4"}]

我开始创建我的谓词,但出现错误。

predicates.add( builder.like(
    builder.function("JSON_EXTRACT", String.class, root1.get("jsonBColumn"),                          
    builder.literal("\"value3\"")), "%" + searchValue + "%"));

我得到的错误是

org.postgresql.util.PSQLException: 错误: 函数 json_extract(jsonb, 字符变化)不存在提示:没有函数匹配给定 名称和参数类型。您可能需要添加显式类型转换。

有人可以帮忙吗?

【问题讨论】:

  • 这是一个想法。格式化您的帖子,使其具有一半可读性...
  • 好的,我确实格式化了我的帖子
  • 您是否阅读了错误信息?您的数据库中不存在“json_extract”。所以也许,只是也许没有这个名字的函数。 postgresql.org/docs/9.6/static/functions-json.html

标签: postgresql jpa predicates


【解决方案1】:

这会有所帮助:

`predicate.getExpressions().add(cb.like(cb.function("jsonb_extract_path_text", String.class, root.get("jsonBColumn"), cb.literal(this.searchKey)), "%" + this.searchValue + "%"));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-12-24
    • 2020-07-22
    • 2021-12-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多