DATACOUCH-185 - view-based CRUD methods use default consistency

The CRUD methods that are backed by a view in SimpleCouchbaseRepository now take the default view consistency into account.
This includes findAll(), findAll(keys), count() and deleteAll().

PagingAndSortingRepository findAll methods already took the default N1QL consistency into account.

This is verified in an unit test and has been made more explicit in the repository documentation.
This commit is contained in:
Simon Baslé
2016-01-08 16:21:20 +01:00
parent a1955a0af5
commit d81dc9aacc
3 changed files with 179 additions and 2 deletions

View File

@@ -134,6 +134,7 @@ public class SimpleCouchbaseRepository<T, ID extends Serializable> implements Co
final ResolvedView resolvedView = determineView();
ViewQuery query = ViewQuery.from(resolvedView.getDesignDocument(), resolvedView.getViewName());
query.reduce(false);
query.stale(getCouchbaseOperations().getDefaultConsistency().viewConsistency());
return couchbaseOperations.findByView(query, entityInformation.getJavaType());
}
@@ -142,6 +143,7 @@ public class SimpleCouchbaseRepository<T, ID extends Serializable> implements Co
final ResolvedView resolvedView = determineView();
ViewQuery query = ViewQuery.from(resolvedView.getDesignDocument(), resolvedView.getViewName());
query.reduce(false);
query.stale(getCouchbaseOperations().getDefaultConsistency().viewConsistency());
JsonArray keys = JsonArray.create();
for (ID id : ids) {
keys.add(id);
@@ -156,6 +158,7 @@ public class SimpleCouchbaseRepository<T, ID extends Serializable> implements Co
final ResolvedView resolvedView = determineView();
ViewQuery query = ViewQuery.from(resolvedView.getDesignDocument(), resolvedView.getViewName());
query.reduce(true);
query.stale(getCouchbaseOperations().getDefaultConsistency().viewConsistency());
ViewResult response = couchbaseOperations.queryView(query);
@@ -172,6 +175,8 @@ public class SimpleCouchbaseRepository<T, ID extends Serializable> implements Co
final ResolvedView resolvedView = determineView();
ViewQuery query = ViewQuery.from(resolvedView.getDesignDocument(), resolvedView.getViewName());
query.reduce(false);
query.stale(getCouchbaseOperations().getDefaultConsistency().viewConsistency());
ViewResult response = couchbaseOperations.queryView(query);
for (ViewRow row : response) {