postgresql 在Hibernate中通过注入使用Postgres JSON函数

qyyhg6bp  于 2022-12-18  发布在  PostgreSQL
关注(0)|答案(1)|浏览(169)

我正在使用Hibernate + SpringBoot,并有一个nativeQuery=true的@Query(),我试图使用Postgres jsonb函数查找JSON列表中包含具有特定字段值的条目的行,其中banana_id是一个参数:

WHERE jsonb_path_exists(CAST(foo.things as jsonb), '$[*] ? (@.id == :banana_id)')

但是无论我怎么尝试,查询都失败了。根据Using Postgres JSONB query with Spring Data and bind parameter fails with InvalidDataAccessApiUsageException这篇文章,不可能注入到一个json路径查询中,这就是为什么:banana_id不起作用,但是我不知道没有它如何重新构造它。

ctehm74n

ctehm74n1#

最后将整个查询作为字符串注入并将其转换为jsonpath,代码如下:

jsonb_path_exists(CAST(foo.things as jsonb), CAST(:query_str as jsonpath))

相关问题