Java 在spring数据下执行postgresql函数时出错

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

我正在尝试通过内部json字段实现搜索。 我的实体如下所示:

@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