0

我正在尝试使用 Spring Data Couchbase 配置。

这是配置类:

@Configuration
@EnableCouchbaseRepositories(basePackages = { "com.thalasoft.data.couchbase.repository" }, basePackageClasses = { BaseRepository.class })
public class CouchbaseConfiguration extends AbstractCouchbaseConfiguration {

  private static Logger logger = LoggerFactory.getLogger(CouchbaseConfiguration.class);

  @Autowired
  private CouchbaseProperties couchbaseProperties;

  @Override
  protected List<String> getBootstrapHosts() {
    return Collections.singletonList(couchbaseProperties.getHost());
  }

  @Override
  protected String getBucketName() {
    return couchbaseProperties.getBucketName();
  }

  @Override
  protected String getBucketPassword() {
    return couchbaseProperties.getBucketPassword();
  }
}

我收到以下错误:

Invalid default: public abstract java.lang.Class org.springframework.data.couchbase.repository.config.EnableCouchbaseRepositories.repositoryBaseClass()

我也尝试过:

@EnableCouchbaseRepositories(basePackages = { "com.thalasoft.data.couchbase.repository" })

但我得到完全相同的错误。

然后我还尝试了:

@EnableCouchbaseRepositories(basePackages = { "com.thalasoft.data.couchbase.repository" }, repositoryBaseClass = BaseRepository.class )

但我得到完全相同的错误。

我的 Couchbase 实例正在运行并且可以访问。

我使用 Spring 4.2.0.RELEASE 和 spring-data-couchbase 2.0.0.M1 对抗 Couchbase 2.5.1 企业版(build-1083)

存储库是:

public interface AnswerRepository extends BaseRepository<Answer, String> {

  @View(viewName = "answers_by_id")
  public List<Answer> findById(String id);

  Answer findByUuid(String uuid);

}

@NoRepositoryBean
public interface BaseRepository<T, ID extends Serializable> extends Repository<T, ID>  {
}
4

1 回答 1

0

您必须CRUDRepository用作基本接口或其子接口之一。

Spring Data Couchbase 需要有一个支持视图才能使 CRUD 操作正常工作。要另外进行分页和排序(通过扩展PagingAndSortingRepository)或从方法名称派生查询,您还需要一个主N1QL索引。

请注意,在即将发布的候选版本中,配置中将有一个选项来自动创建您需要的视图/索引,但手动创建它们通常更安全,因为根据已存储的文档数量,它可以是昂贵的操作...

于 2015-12-07T16:06:53.230 回答