【问题标题】:How can I place a n1ql query with variables in a spring @Query annotation?如何在 spring @Query 注释中放置带有变量的 n1ql 查询?
【发布时间】:2019-02-03 20:33:17
【问题描述】:

我有以下 N1QL 查询:

UPDATE `bucket` 
SET b.terms.min_due.`value` = "12345" FOR b IN balances END 
WHERE entry_id = "12345"

我想把它放在一个@Query 注释的存储库方法中,但是value 和entry_id 的值需要是可变的。

它们用于仅更新部分文档的补丁操作。我必须通过@Query 使用内联 N1ql 来完成,所以这是我唯一尝试过的。

@Query(UPDATE `bucket` SET b.terms.min_due.`value` = "12345" FOR b IN balances END WHERE entry_id = "12345")
<T> Mono<T> patch(T Aggregate);

我想构建一个存储库方法,用从聚合中提取的值替换 value 和 entry_id 的“12345”,然后执行 N1ql 查询,只更新语句中指定的值,而不是整个 couchbase 文档。

【问题讨论】:

    标签: spring repository couchbase n1ql spring-data-couchbase


    【解决方案1】:

    您可以为此使用标准 spEL 语法:

    @Query("#{#n1ql.selectEntity} where #{#n1ql.filter} and companyId = $2 and $1 within #{#n1ql.bucket}")
    BusinessUnity findByAreaRefId(String areaRefId, String companyId);
    

    【讨论】:

      猜你喜欢
      • 2018-12-09
      • 2014-12-20
      • 1970-01-01
      • 2013-06-19
      • 2023-03-09
      • 2015-03-13
      • 2020-11-19
      • 2016-09-04
      • 2021-10-22
      相关资源
      最近更新 更多