Spring-data-couchbase - 运行 更新查询
Spring-data-couchbase - running update query
是否有可能使用 spring-data 执行 N1QL 更新查询?
即我有以下更新查询:
"UPDATE USERS USE KEYS $id SET location = $location"
我尝试使用couchbaseTemplate.queryN1QL
方法,但它不起作用。
是否有使用 spring 数据甚至原生 couchbase java SDK 解决此问题的方法?
CouchbaseTemplate
更适合 Spring 数据文档的用例,因此它期望 运行 查询 return 特定元素并最终解组为实体(例如 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);
我认为您可以在 UPDATE
语句的末尾添加 RETURNING *
。它会使语句 returns 成为某种东西。它对我有用。
是否有可能使用 spring-data 执行 N1QL 更新查询?
即我有以下更新查询:
"UPDATE USERS USE KEYS $id SET location = $location"
我尝试使用couchbaseTemplate.queryN1QL
方法,但它不起作用。
是否有使用 spring 数据甚至原生 couchbase java SDK 解决此问题的方法?
CouchbaseTemplate
更适合 Spring 数据文档的用例,因此它期望 运行 查询 return 特定元素并最终解组为实体(例如 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);
我认为您可以在 UPDATE
语句的末尾添加 RETURNING *
。它会使语句 returns 成为某种东西。它对我有用。