我在下表temp_tbl中(postgres):
ID(int) NAME(TEXT) LINKS(jsonb)
-------- ---------- -------------------
1 Name1 ["1","23","3", "32]
2 Name2 ["11","3","31", "2]
3 Name3 ["21","13","3", "12]
现在,我的本机查询要获取具有值为“ 3”的“ LINKS”的行:
select * from temp_tbl where links @> '["3"]'
返回第2和3行。
我想使用org.springframework.data.jpa.domain.Specification实现此查询
我已经实现了类似于下面的内容,其中jsonb列不是数组,但是使用jsonb_extract_path_text具有键值json。但是上面的列仅将值存储在数组中。
我的实体类。
@Entity
@Table(name = "temp_tbl")
public class TempTbl {
@Id
@Column(name = "ID")
private Long id;
@Column(name = "NAME", nullable = false)
private String name;
@Column(name = "LINKS", columnDefinition = "jsonb null")
@Convert(converter = JsonbConverter.class)
private List<String> linkIds;
}
我需要帮助,使用criteriabuilder将上述查询转换为规范。
我有同样的问题。解决了吗?