我正在尝试解决有关 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