如何使用spring数据规范查询jsonb列?

问题描述 投票:2回答:1

我在下表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将上述查询转换为规范。

spring-data criteria
1个回答
0
投票

我有同样的问题。解决了吗?

© www.soinside.com 2019 - 2024. All rights reserved.