【问题标题】:Check if an integer is in a jsonb list检查整数是否在 jsonb 列表中
【发布时间】:2020-02-10 15:39:37
【问题描述】:

我正在尝试在 JPA 中编写本机查询。我想验证 jsonb 列中是否存在元素。但是,我收到了错误 integer <@ jsonb

这是我的查询:

@Query(
        value = "SELECT u FROM user u WHERE (u.depNum = ?1 and superAdmin = true " +
            "       and ?2 <@ (u.listUsers)) ",
        nativeQuery = true

    )
    public List<EbUser> selectSuperAdmin(Integer depNum, Integer userNum);

错误发生在这里:?2 &lt;@ (u.listUsers)。如何验证listUsers 是否包含userNum,或者如何在Java 中将userNum 转换为jsonb

【问题讨论】:

    标签: java postgresql jpa spring-data-jpa


    【解决方案1】:

    您可以在 PostgreSQL 中进行转换。

    and to_jsonb(ARRAY[?2]) <@ (u.listUsers))
    

    只要 JPA 不干扰将此构造传递到 PostgreSQL,我还没有测试过那部分。

    【讨论】:

      猜你喜欢
      • 2018-07-26
      • 2023-03-03
      • 2014-09-25
      • 2013-01-14
      • 1970-01-01
      • 2020-05-14
      • 2011-04-24
      • 1970-01-01
      • 2018-07-25
      相关资源
      最近更新 更多