如何编写一个查询来检查JSON列的值?



假设我有一个有三列的表:id,name,statestate列的类型为jsonb,并且该结构将始终(作为最小值)具有一个名为active的键,例如

{"name": "some_name", active: true, ...}

{"name": "one_two", active: false, ...}

我已经通过编写自己的@WritingConverter@ReadingConverter(到PGobject)获得了序列化和反序列化的一切,因此我可以编写一个查询,然后在Java级别执行过滤器,因此只有那些"活跃"的才保留。

但是,我如何在Spring Data JDBC中编写一个查询,允许我在DB级别查询json列?

您可以使用@Query注释和数据库提供的任何工具来查询json。

只是作为一个例子本教程使用JSON的Postgres建议之类的应该工作。

@Query("select * from mytable where state ->> 'active' = :active ")
List<MyTable> findAllActive(String active)

您可能可以将state ->> 'active'转换为合适的内容,以便您可以使用boolean作为方法参数,但我将从简单的内容开始。

相关内容

  • 没有找到相关文章

最新更新