Как разместить запрос n1ql с переменными в весенней аннотации @Query?
У меня есть следующий запрос N1QL:
UPDATE `bucket`
SET b.terms.min_due.`value` = "12345" FOR b IN balances END
WHERE entry_id = "12345"
Я хочу поместить его в аннотированный метод репозитория @Query, но значения для value
и entry_id должны быть переменными.
Они предназначены для операции исправления, которая обновляет только части документа. Я должен сделать это, используя встроенный N1ql через @Query, так что это единственное, что я пробовал.
@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);
Я хочу создать метод хранилища, который заменяет "12345" для value
и entry_id со значениями, извлеченными из агрегата, затем выполняет запрос N1ql, обновляя только значение, указанное в операторе, вместо всего документа couchbase.
1 ответ
Решение
Для этого вы можете использовать стандартный синтаксис spEL:
@Query("#{#n1ql.selectEntity} where #{#n1ql.filter} and companyId = $2 and $1 within #{#n1ql.bucket}")
BusinessUnity findByAreaRefId(String areaRefId, String companyId);