Spring-data-couchbase - выполняется запрос на обновление

Есть ли возможность выполнить запрос обновления N1QL с использованием Spring-данных?

Т.е. У меня следующий запрос на обновление:

"UPDATE USERS USE KEYS $id SET location = $location"

Я пробовал использовать метод couchbaseTemplate.queryN1QL, но он не работает.

Есть ли какое-либо решение этой проблемы с использованием данных Spring или даже собственного Java SDK для couchbase?


person IgorekPotworek    schedule 07.03.2016    source источник


Ответы (2)


CouchbaseTemplate больше адаптирован к варианту использования документа Spring Data, поэтому он ожидает выполнения запросов, которые возвращают определенные элементы и в конечном итоге неупорядочиваются в сущности (например, объект User).

если вы хотите выполнить запрос более свободной формы, например, ваше обновление, вы всегда можете получить доступ к собственному SDK из шаблона. В твоем случае:

String paStatement = "UPDATE USERS USE KEYS $id SET location = $location";
JsonObject paramValues = JsonObject.create().put("id", theId).put("location", "theLocation");
N1qlQuery query = N1qlQuery.parametrized(paStatement, paramValues);
template.getCouchbaseBucket().query(query);
person Simon Baslé    schedule 07.03.2016

Я думаю, вы можете добавить RETURNING * в конце вашего UPDATE утверждения. Это заставило бы заявление что-то вернуть. Меня устраивает.

person user9561678    schedule 28.03.2018