postgres jsonB 的标准构建器?操作员

问题描述 投票:0回答:1

我有一个表 synonyms_table ,其中包含 jsonb 列同义词,它是一个 json 数组。 此列中的条目看起来像这样:[“good”、“nice”、“awesome”]

我有疑问 从 synonym_table 中选择 *,其中 synonym::jsonb ? ‘好’;

我想使用 CriteriaBuilder 创建它。 我怎样才能做到这一点?任何帮助将不胜感激。

Specification specification = (root, query, criteriaBuilder) -> {
    return criteriaBuilder.equal(criteriaBuilder.function("jsonb_extract_path_text", String.class, root.<String>get("synonym"), criteriaBuilder.literal("synonym")), 'good');
};

但这不起作用 出现以下错误:

Caused by: org.postgresql.util.PSQLException: ERROR: function jsonb_extract_path_text(character varying, character varying) does not exist
java postgresql spring-boot spring-data-jpa
1个回答
0
投票

我只是假设,但我认为问题是你的列是一个纯字符串数组,而不是数组或对象或

{..}
json。

我已经检查了

jsonb_array_elements
函数,但我能找到的唯一示例是其中包含复杂对象的数组。

您要么寻找更多这样的例子

jsonb_array_elements
,看看是否有帮助。

或者

如果您以简单的方式变换列

varchar[]

你可以做这样的事情 https://stackoverflow.com/a/24695695/3018285

© www.soinside.com 2019 - 2024. All rights reserved.