如何在 spring @Query 注释中放置带有变量的 n1ql 查询?

How can I place a n1ql query with variables in a spring @Query annotation?

我有以下 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 文档。

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

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