2

春のデータ カウチベース リポジトリのカスタム メソッドを作成する必要があります。これが私のコードです。

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();
}

しかし、実行中にエラーが表示されます。

スレッド「メイン」org.springframework.dao.InvalidDataAccessResourceUsageException での例外: 設計ドキュメント「コンテンツ」のビュー「addIndex」を読み込めませんでした。ネストされた例外は com.couchbase.client.protocol.views.InvalidViewException: 設計ドキュメント「コンテンツ」のビュー「addIndex」を読み込めませんでした

4

2 に答える 2

1

Spring Data Couchbase のドキュメントでは、これについて説明しています: Spring Data Reference Link

概要をすばやく把握するには、必要なカスタマ メソッドを使用して実装用のインターフェイスを作成します。次に、それらのメソッドの実装クラスを、CrudRepository インターフェースと同じ名前で、接尾辞として「Impl」を付けて作成します。このサフィックスは重要です。次に、Spring CrudRepository を拡張するインターフェースを作成するときに、CrudRepository を拡張するだけでなく、カスタム メソッド用に作成したインターフェースも拡張します。次に、通常どおりビルドすると、Spring は、指定したカスタム メソッドを使用して CrudRepository の生成を処理する必要があります。

上で参照した Spring ドキュメントの簡単な例を次に示します。最初のカスタム インターフェイス:

interface UserRepositoryCustom {
  public void someCustomMethod(User user);
}

このインターフェースの実装は次のとおりです。

class UserRepositoryImpl implements UserRepositoryCustom {

  public void someCustomMethod(User user) {
    // Your custom implementation
  }
}

最後に、CrudRepository の典型的なインターフェースですが、カスタム インターフェースも拡張します。

interface UserRepository extends CrudRepository<User, Long>, UserRepositoryCustom {

  // Declare query methods here
}

詳細については、上記にリンクされている Spring Data Couchbase のドキュメントを参照してください。

于 2015-11-04T01:51:00.227 に答える