Java 在spring数据下执行postgresql函数时出错
我正在尝试通过内部json字段实现搜索。 我的实体如下所示:Java 在spring数据下执行postgresql函数时出错,java,spring,postgresql,spring-data-jpa,spring-data,Java,Spring,Postgresql,Spring Data Jpa,Spring Data,我正在尝试通过内部json字段实现搜索。 我的实体如下所示: @Data @Entity @Table(name = "restaurants") @EqualsAndHashCode(callSuper = true) public class Restaurant extends BaseEntity { @Convert(converter = AddressConverter.class) private Address addre
@Data
@Entity
@Table(name = "restaurants")
@EqualsAndHashCode(callSuper = true)
public class Restaurant extends BaseEntity {
@Convert(converter = AddressConverter.class)
private Address address;
}
地址本身内部有城市字段。
现在我尝试创建规范:
(root, criteriaQuery, criteriaBuilder) -> criteriaBuilder.equal(
criteriaBuilder.function("jsonb_extract_path_text", String.class, root.get("address"),
criteriaBuilder.literal("city")), value)
这就是我的错误:
Caused by: org.postgresql.util.PSQLException: ERROR: function jsonb_extract_path_text(character varying, character varying) does not exist
Hint: No function matches the given name and argument types. You might need to add explicit type casts.
Position: 420
我阅读了postgres文档以及函数ara json和文本数组的参数:
json_extract_path_text(from_json json, VARIADIC path_elems text[])
同时,在我的例子中,两个论点都是不同性质的。我做错了什么?有没有办法将第一个参数强制转换为json对象?
我正在使用最新的postgresql 13