diff --git a/src/main/java/org/springframework/data/couchbase/repository/query/ViewBasedCouchbaseQuery.java b/src/main/java/org/springframework/data/couchbase/repository/query/ViewBasedCouchbaseQuery.java index 94674b86..ee74bd8a 100644 --- a/src/main/java/org/springframework/data/couchbase/repository/query/ViewBasedCouchbaseQuery.java +++ b/src/main/java/org/springframework/data/couchbase/repository/query/ViewBasedCouchbaseQuery.java @@ -20,6 +20,7 @@ import com.couchbase.client.protocol.views.Query; import org.springframework.data.couchbase.core.CouchbaseOperations; import org.springframework.data.repository.query.QueryMethod; import org.springframework.data.repository.query.RepositoryQuery; +import org.springframework.util.StringUtils; /** * Execute a repository query through the View mechanism. @@ -69,7 +70,7 @@ public class ViewBasedCouchbaseQuery implements RepositoryQuery { if (method.hasViewAnnotation()) { return method.getViewAnnotation().designDocument(); } else { - return method.getEntityInformation().getJavaType().getSimpleName().toLowerCase(); + return StringUtils.uncapitalize(method.getEntityInformation().getJavaType().getSimpleName()); } } @@ -82,7 +83,7 @@ public class ViewBasedCouchbaseQuery implements RepositoryQuery { if (method.hasViewAnnotation()) { return method.getViewAnnotation().viewName(); } else { - return method.getName(); + return StringUtils.uncapitalize(method.getName().replaceFirst("find", "")); } } diff --git a/src/test/java/org/springframework/data/couchbase/repository/CouchbaseRepositoryViewTests.java b/src/test/java/org/springframework/data/couchbase/repository/CouchbaseRepositoryViewTests.java index 15a6dae1..585b5faa 100644 --- a/src/test/java/org/springframework/data/couchbase/repository/CouchbaseRepositoryViewTests.java +++ b/src/test/java/org/springframework/data/couchbase/repository/CouchbaseRepositoryViewTests.java @@ -22,6 +22,7 @@ import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.dao.InvalidDataAccessResourceUsageException; import org.springframework.data.couchbase.TestApplicationConfig; import org.springframework.data.couchbase.core.CouchbaseTemplate; import org.springframework.data.couchbase.repository.support.CouchbaseRepositoryFactory; @@ -72,4 +73,9 @@ public class CouchbaseRepositoryViewTests { assertThat(value, is(100L)); } + @Test(expected = InvalidDataAccessResourceUsageException.class) + public void shouldTrimOffFindOnCustomFinder() { + repository.findAllSomething(); + } + } diff --git a/src/test/java/org/springframework/data/couchbase/repository/CustomUserRepository.java b/src/test/java/org/springframework/data/couchbase/repository/CustomUserRepository.java index ee1081e0..aa0414ad 100644 --- a/src/test/java/org/springframework/data/couchbase/repository/CustomUserRepository.java +++ b/src/test/java/org/springframework/data/couchbase/repository/CustomUserRepository.java @@ -31,4 +31,6 @@ public interface CustomUserRepository extends CouchbaseRepository @View(designDocument = "userCustom", viewName = "customCountView") long count(); + Iterable findAllSomething(); + }