我需要为spring data couchbase存储库编写一个自定义方法。这是我的代码。
CBsampleRepositoryCustom.java
public interface CBsampleRepositoryCustom {
public void addIndex() ;
}
CBsampleRepositoryImpl.java
public class CBsampleRepositoryImpl implements CBsampleRepositoryCustom {
@Override
public void addIndex() {
System.out.println("CBsampleRepositoryCustomImpl createIndex");
}
}
CBsampleRepository.java
@Repository
public interface CBsampleRepository extends CouchbaseRepository<Content,String> , CBsampleRepositoryCustom{
}
CouchBaseBeansConfiguration.java
@Configuration
public class CouchBaseBeansConfiguration {
@Bean
public CouchbaseClient couchbaseClient() throws IOException {
return new CouchbaseClient(Arrays.asList(URI
.create("http://localhost:8091/pools")), "test", "");
}
@Bean
public CouchbaseTemplate couchbaseTemplate() throws IOException {
return new CouchbaseTemplate(couchbaseClient());
}
}
Main.java
public static void main(String[] args) {
ApplicationContext context = new AnnotationConfigApplicationContext(
CouchBaseBeansConfiguration.class);
CouchbaseTemplate template = context.getBean("couchbaseTemplate",
CouchbaseTemplate.class);
RepositoryFactorySupport factory = new CouchbaseRepositoryFactory(
template);
CBsampleRepository repository = factory.getRepository(CBsampleRepository.class);
repository.addIndex();
}
但是在运行时显示错误。
Exception in thread "main" org.springframework.dao.InvalidDataAccessResourceUsageException: Could not load view "addIndex" for design doc "content"; nested exception is com.couchbase.client.protocol.views.InvalidViewException: Could not load view "addIndex" for design doc "content"
最佳答案
我们需要将实现类对象传递给 getRepository 函数。如下更改主类。
Main.java
public static void main(String[] args) {
ApplicationContext context = new AnnotationConfigApplicationContext(
CouchBaseBeansConfiguration.class);
CouchbaseTemplate template = context.getBean("couchbaseTemplate",
CouchbaseTemplate.class);
RepositoryFactorySupport factory = new CouchbaseRepositoryFactory(
template);
CBsampleRepository repository = factory.getRepository(CBsampleRepository.class,new CBsampleRepositoryImpl());
CBsampleRepository repository = factory.getRepository(CBsampleRepository.class,custom);
repository.addIndex();
}
关于java - spring data couchbase中的自定义方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27166442/