我有以下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查询,仅更新语句中指定的值,而不更新整个沙发数据库文档。

最佳答案

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

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

关于spring - 如何在 Spring @Query批注中放置带有变量的n1ql查询?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54507287/

10-12 04:33