1

Couchbase のドキュメントでは、環境を構成するための例として以下が示されています。バケットが複数ある場合はどうすればよいですか?

@Configuration
public class Config extends AbstractCouchbaseConfiguration {

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

    @Override
    protected String getBucketName() {
        return "beer-sample";
    }

    @Override
    protected String getBucketPassword() {
        return "";
    }
}

4

1 に答える 1

0

ブランチ内の複数のバケットの2.0.x場合、現在の動作方法では、2 番目Bucketの Bean と関連する Beanをインスタンス化する必要がありますCouchbaseTemplate(これが最も難しい部分です)。

//we want all User objects to be stored in a second bucket
//let's define the bucket reference...
@Bean
public Bucket userBucket() {
  return couchbaseCluster().openBucket("users", "");
}

//... then the template (inspired by couchbaseTemplate() method)...
@Bean
public CouchbaseTemplate userTemplate() {
  CouchbaseTemplate template = new CouchbaseTemplate(
    couchbaseClusterInfo(), //reuse the default bean
     userBucket(), //the bucket is non-default
    mappingCouchbaseConverter(), translationService() //default beans here as well
  );
  template.setDefaultConsistency(getDefaultConsistency());
  return template;
}

その後、リポジトリの一部でこの 2 番目のテンプレート (およびバケット) を使用することも必要になるでしょう。現在、そのための実装もあります ( RepositoryOperationsMapping) が、おそらく今後まで少し変更される可能性がある2.0.0-RCため、詳細については説明しません。

于 2015-11-11T16:17:36.590 に答える