使用java按键和值查找jsonb中的条目

lf3rwulv  于 2023-03-16  发布在  Java
关注(0)|答案(1)|浏览(128)

如何获取jsonb列中包含特定键和值的条目?例如,我需要获取包含classifiedId = 665的条目。
这是一个名为external_idsjsonb列的示例:

{
  "bookId": "36056",
  "keyId": "662123",
  "classifiedId": "665"
}

我的java代码:

@Query(nativeQuery = true,
        value = """
        select *
        from _book_complex
        where jsonb_exists(external_ids, ?1)
    """)
Optional<BookComplexEntity> findByClassifiedId(String classifiedId);

但它无法正常工作,找不到该条目

ggazkfy8

ggazkfy81#

不确定这是否是最好的解决方案,但它起作用了:

@Query(nativeQuery = true,
        value = """
        select *
        from _book_complex ap
        where ap.external_ids ->> 'classifiedId' = ?1
    """)
Optional<BookComplexEntity> findByClassifiedId(String classifiedId);

相关问题