[SPRING] spring-data-couchbase를 사용하고 있지만 메서드 이름의 쿼리 작성이 작동하지 않습니다.
SPRINGspring-data-couchbase를 사용하고 있지만 메서드 이름의 쿼리 작성이 작동하지 않습니다.
spring-data-couchbase를 사용하고 있지만 메서드 이름에서 쿼리를 만드는 것은 효과가 없습니다. 다음은 내 코드입니다.
spring-couchbase.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans:beans xmlns:beans="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://www.springframework.org/schema/data/jpa"
xmlns:couchbase="http://www.springframework.org/schema/data/couchbase"
xmlns:jpa="http://www.springframework.org/schema/data/couchbase"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/data/jpa
http://www.springframework.org/schema/data/jpa/spring-jpa.xsd
http://www.springframework.org/schema/data/couchbase
http://www.springframework.org/schema/data/couchbase/spring-couchbase.xsd">
<couchbase:couchbase bucket="comment" host="192.168.20.118,192.168.20.71" />
<couchbase:template/>
<jpa:repositories base-package="com.david.comment.core.repository" />
</beans:beans>
저장소:
public interface CommentRepository extends PagingAndSortingRepository<CommentDoc, String> {
public Page<CommentDoc> findByUserId(String userId, Pageable pageable);
}
도메인:
@Document
@Data
public class CommentDoc {
@Id
private String id;
/**
* 话题
*/
@Field
private String topicId;
/**
* 用户ID
*/
@Field
private String userId;
}
테스트:
@Test
public void testFindByC1() {
Pageable pageable = new PageRequest(0, 10);
Page<CommentDoc> comments = commentRepository.findByUserId("user01", pageable);
for(CommentDoc commentDoc : comments) {
logger.debug("doc: {}", commentDoc);
}
}
예외:
java.lang.IllegalStateException: Unknown query param: user01
at org.springframework.data.couchbase.repository.query.ViewBasedCouchbaseQuery.execute(ViewBasedCouchbaseQuery.java:47)
at org.springframework.data.repository.core.support.RepositoryFactorySupport$QueryExecutorMethodInterceptor.doInvoke(RepositoryFactorySupport.java:393)
at org.springframework.data.repository.core.support.RepositoryFactorySupport$QueryExecutorMethodInterceptor.invoke(RepositoryFactorySupport.java:371)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
at org.springframework.data.couchbase.repository.support.ViewPostProcessor$ViewInterceptor.invoke(ViewPostProcessor.java:87)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:207)
at com.sun.proxy.$Proxy24.findByUserId(Unknown Source)
at com.runmit.comment.core.test.CommentRepositoryTest.testFindByC1(CommentRepositoryTest.java:57)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.springframework.test.context.junit4.statements.RunBeforeTestMethodCallbacks.evaluate(RunBeforeTestMethodCallbacks.java:73)
at org.springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks.evaluate(RunAfterTestMethodCallbacks.java:82)
at org.springframework.test.context.junit4.statements.SpringRepeat.evaluate(SpringRepeat.java:73)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:217)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:83)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:68)
at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:163)
at org.junit.runner.JUnitCore.run(JUnitCore.java:160)
at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:67)
누군가 나를 도와주세요! 어떻게 해결할 수 있습니까?
해결법
-
==============================
1.나는 이것에 처음이지만, 그냥 통과했다. Couchbase은 다른 Spring Data Repository에서 제공되는 모든 것을 지원하지는 않는다.
나는 이것에 처음이지만, 그냥 통과했다. Couchbase은 다른 Spring Data Repository에서 제공되는 모든 것을 지원하지는 않는다.
from https://stackoverflow.com/questions/30620182/i-am-using-spring-data-couchbase-but-the-query-creation-from-method-names-does by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] 동일한 애플리케이션에서 스프링 보안 양식 로그인 및 oauth2 (0) | 2019.05.05 |
---|---|
[SPRING] 최대 절전 모드에서 예외를 throw하지 않는 DB 제약 위반 (0) | 2019.05.04 |
[SPRING] Spring Batch로 여러 열의 CSV 파일을 읽는 법 (0) | 2019.05.04 |
[SPRING] 'hibernate.dialect'가 설정되지 않았을 때 연결은 null 일 수 없다. hibernate4 tomcat7 (0) | 2019.05.04 |
[SPRING] Spring Boot Application에서 Angular 클라이언트가 여러 개인 RequestMapping 문제 (0) | 2019.05.04 |