Как разместить запрос 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);
Другие вопросы по тегам