Spring-data-couchbase - 运行更新查询

时间:2016-03-07 11:50:10

标签: java spring couchbase n1ql spring-data-couchbase

是否有可能使用spring-data执行N1QL更新查询?

即。我有以下更新查询:

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

我尝试使用couchbaseTemplate.queryN1QL方法,但它不起作用。

使用spring数据甚至本机couchbase java SDK有没有解决这个问题的方法?

2 个答案:

答案 0 :(得分:1)

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);

答案 1 :(得分:0)

我认为您可以在RETURNING *声明的末尾添加UPDATE。它会使语句返回一些东西。它对我有用。