Spring JPA规范和JSONB字符串数组[Postgres]

时间:2019-12-19 16:44:21

标签: java spring postgresql jpa jsonb

我正在尝试解决有关 JPA规范和使用JSONB 数组值的问题。

假设我们使用Postgres并拥有一个这样的SQL实体

id character varying(255)
code character varying(255)
data jsonb

data 中,有一个类型为[“ aaa”,“ bbb”,“ ccc”]的值。

在我的实体中,我有:

@Entity(name = "my_entity")
@TypeDefs({
        @TypeDef(name = "JsonDataType", typeClass = JsonDataType.class)
})
public class MyEntity {
    @Id
    private String id;

    @Column(name = "code")
    private String code;

    @Type(type = "JsonDataType")
    @Column(name = "data")
    private List<String> data;

    // GETTERS AND SETTERS

在数据库中插入实体时已正确序列化的

建立规范以查询 code 属性(即

)很容易
public static Specification<MyEntity> searchByCode(String code) {
        return (root, criteriaQuery, criteriaBuilder) 
                       -> (code != null) 
                            ? criteriaBuilder.equal(root.<String>get("code"), code) 
                            : null;
}

现在,我需要使用 Specification 来向 data json数组中查询值,这几乎与以下查询相同: select * from my_entity数据在哪里? 'aaa';

我找不到有关inet的任何解决方案。 :(

有人可以给我一个线索吗?预先感谢。

Luigi

0 个答案:

没有答案