postgresql - 在 spring-data 存储库方法中使用 postgesql 的函数,该函数采用数组类型的参数
问题描述
我正在使用一个@Modifying
spring-data 存储库更新查询,该查询利用 Postgresql 函数jsonb_set(...)
来更新存储的 JSON 值上的特定节点。存储库方法如下所示
@Query(value = "UPDATE AutosavedEntityDAO ae " +
"SET ae.json = jsonb_set(ae.json, '{myJsonNode}', to_jsonb(:json)) " +
"WHERE ae.id=:id")
@Modifying
void updateNode(@Param("id") Long id, @Param("json") String json);
在我尝试更改存储库方法的签名并使path
参数可配置之前,这工作得很好,例如:
@Query(value = "UPDATE AutosavedEntityDAO ae " +
"SET ae.json = jsonb_set(ae.json, :path, to_jsonb(:json)) " +
"WHERE ae.id=:id")
@Modifying
void updateNode(@Param("id") Long id, @Param("path") String[] path, @Param("json") String json);
根据 postresql 文档,jsonb_set
签名如下
jsonb_set(target jsonb, path text[], new_value jsonb [, create_missing boolean])
。该函数的第二个参数是 postgesql 的text[]
,看起来@Param("path") String[] path
不能映射到text[]
path
有没有办法通过spring存储库方法为参数提供动态值?任何已知的解决方法?
解决方案
推荐阅读
- html - 如何在 angular primeng p-calendar v5.2.7 中设置默认时间?
- ios - 如何在 BigQuery 中导出所有谷歌分析数据
- javascript - 如何在 Node ESM 模块加载器中使用 HTTP url?
- reactjs - 在引导程序中添加自定义主题颜色
- rxjs - RxJS 有条件地订阅嵌套的 observable
- triggers - 如何在触发器中创建警告消息?
- f# - F# 中插值字符串中的嵌入字符串
- algorithm - 有没有办法根据历史创建一个最小化重复的组?
- environment-variables - .Net 5 环境变量优先顺序
- php - 我的一些 HTML 类没有在 PHP 文件中应用 CSS 代码