Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
  • Loading branch information
gkysaad committed Jul 14, 2021
1 parent 29e2549 commit eada912
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 15 deletions.
Expand Up @@ -108,7 +108,7 @@ public class DatabaseConfiguration {
@Bean
public Couchmove couchmove(Bucket couchbaseBucket, CouchbaseProperties properties) {
log.debug("Configuring Couchmove");
Couchmove couchmove = new Couchmove(couchbaseBucket, properties.getBucket().getName(), properties.getBucket().getPassword(), "config/couchmove/changelog");
Couchmove couchmove = new Couchmove(couchbaseBucket, properties.getUsername(), properties.getPassword(), "config/couchmove/changelog");
couchmove.migrate();
return couchmove;
}
Expand Down
Expand Up @@ -18,7 +18,7 @@
-%>
package <%= packageName %>.repository;
<%_ if (searchEngine === 'couchbase') { _%>
<%_ if (searchEngineCouchbase) { _%>
import com.couchbase.client.java.search.SearchQuery;
// import com.couchbase.client.java.search.queries.AbstractFtsQuery;
// import com.couchbase.client.java.search.queries.DocIdQuery;
Expand All @@ -31,22 +31,24 @@ import com.couchbase.client.java.search.queries.DocIdQuery;
import com.couchbase.client.java.search.queries.QueryStringQuery;
import com.couchbase.client.java.search.result.SearchResult;
import com.couchbase.client.java.search.result.SearchRow;
import com.couchbase.client.java.search.SearchOptions;
import <%= packageName %>.repository.search.SearchCouchbaseRepository;
<%_ } _%>
import org.springframework.data.couchbase.core.CouchbaseOperations;
import org.springframework.data.couchbase.core.mapping.CouchbasePersistentEntity;
import org.springframework.data.couchbase.repository.query.CouchbaseEntityInformation;
// import org.springframework.data.couchbase.repository.support.N1qlCouchbaseRepository;
import <%= packageName %>.repository.N1qlCouchbaseRepository;
<%_ if (searchEngine === 'couchbase') { _%>
// import <%= packageName %>.repository.N1qlCouchbaseRepository;
import org.springframework.data.couchbase.repository.support.SimpleCouchbaseRepository;
<%_ if (searchEngineCouchbase) { _%>
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageImpl;
import org.springframework.data.domain.Pageable;
<%_ } _%>
import java.io.Serializable;
<%_ if (searchEngine === 'couchbase') { _%>
<%_ if (searchEngineCouchbase) { _%>
import java.util.LinkedList;
import java.util.List;
import java.util.Optional;
Expand All @@ -56,7 +58,7 @@ import java.util.stream.Collectors;
/**
* A custom implementation of {@code CouchbaseRepository}.
*/
public class CustomN1qlCouchbaseRepository<T, ID extends Serializable> extends N1qlCouchbaseRepository<T, ID><%if (searchEngine === 'couchbase') { %> implements SearchCouchbaseRepository<T, ID><% } %> {
public class CustomN1qlCouchbaseRepository<T, ID extends Serializable> extends SimpleCouchbaseRepository<T,ID> <%if (searchEngineCouchbase) { %> implements SearchCouchbaseRepository<T, ID><% } %> {
private final CouchbasePersistentEntity<?> persistentEntity;
Expand All @@ -68,28 +70,29 @@ public class CustomN1qlCouchbaseRepository<T, ID extends Serializable> extends N
*/
public CustomN1qlCouchbaseRepository(CouchbaseEntityInformation<T, String> metadata, CouchbaseOperations couchbaseOperations) {
super(metadata, couchbaseOperations);
persistentEntity = getCouchbaseOperations().getConverter().getMappingContext().getPersistentEntity(getEntityInformation().getJavaType());
persistentEntity = couchbaseOperations.getConverter().getMappingContext().getPersistentEntity(getEntityInformation().getJavaType());
}
@Override
public <S extends T> S save(S entity) {
return super.save(populateIdIfNecessary(entity));
}
<%_ if (searchEngine === 'couchbase') { _%>
<%_ if (searchEngineCouchbase) { _%>
public Page<T> search(String indexName, String request, Pageable pageable) {
SearchQuery searchQuery = new SearchQuery(indexName, queryString(request))
SearchQuery searchQuery = SearchQuery.queryString(request);
SearchOptions searchOptions = SearchOptions.searchOptions()
.limit(pageable.getPageSize())
.skip((int) pageable.getOffset());
SearchResult result = getCouchbaseOperations().getCouchbaseBucket().query(searchQuery);
SearchResult result = couchbaseOperations.getCouchbaseClientFactory().getCluster().searchQuery(indexName, searchQuery, searchOptions); // change to cluster.searchQuery
List<T> pageContent = extractResults(result);
return new PageImpl<>(pageContent, pageable, result.metrics().totalHits());
return new PageImpl<>(pageContent, pageable, result.metaData().metrics().totalRows());
}
@Override
public List<T> search(String indexName, String request) {
SearchQuery searchQuery = new SearchQuery(indexName, queryString(request));
return extractResults(getCouchbaseOperations().getCouchbaseBucket().query(searchQuery));
SearchQuery searchQuery = SearchQuery.queryString(request);
return extractResults(getCouchbaseOperations().getCouchbaseBucket().searchQuery(indexName, searchQuery));
}
static SearchQuery queryString(String request) {
Expand All @@ -113,7 +116,7 @@ public class CustomN1qlCouchbaseRepository<T, ID extends Serializable> extends N
@SuppressWarnings("unchecked")
private List<T> extractResults(SearchResult result) {
return result.hits().stream()
return result.rows().stream()
.map(SearchRow::id)
.map(id -> (ID) id)
.map(this::findById)
Expand All @@ -140,4 +143,5 @@ public class CustomN1qlCouchbaseRepository<T, ID extends Serializable> extends N
private <S extends T> void setId(S entity, String generatedId) {
persistentEntity.getPropertyAccessor(entity).setProperty(persistentEntity.getIdProperty(), generatedId);
}

}
Expand Up @@ -12,7 +12,7 @@
"databaseType": "couchbase",
"devDatabaseType": "couchbase",
"prodDatabaseType": "couchbase",
"searchEngine": false,
"searchEngine": "couchbase",
"messageBroker": false,
"serviceDiscoveryType": false,
"buildTool": "gradle",
Expand Down

0 comments on commit eada912

Please sign in to comment.