4

参照ドキュメントから「すべてのリポジトリにカスタム動作を追加する」例を取得しようとしています。ただし、次のクラスの場合:

public class MyRepositoryImpl<T, ID extends Serializable>
  extends SimpleJpaRepository<T, ID> implements MyRepository<T, ID> {

  public void sharedCustomMethod(ID id) {
    // implementation goes here
  }
}

コンパイルエラーが発生します

SimpleJpaRepository() に適したコンストラクターが見つかりません
コンストラクター org.springframework.data.jpa.repository.support.SimpleJpaRepository.SimpleJpaRepository(java.lang.Class,javax.persistence.EntityManager) は適用されません
(実引数リストと仮引数リストの長さが異なります)
コンストラクタ org.springframework.data.jpa.repository.support.SimpleJpaRepository.SimpleJpaRepository(org.springframework.data.jpa.repository.support.JpaEntityInformation,javax.persistence.EntityManager) は適用外
(実引数リストと仮引数リストの長さが異なる)

どうすればこれを機能させることができますか?

4

4 に答える 4

-1

@Oliver が言っていたのは、コードを間違ってコピー/貼り付けしたということです。からそのSpring-Data-MongoDB Docsコードをコピーして貼り付け、Spring-Data-JPA Docs変更するのを忘れました。持っているコードを実際に見ると、変更は簡単です。

public interface MyMongoRepository<T, ID extends Serializable> extends MongoRepository<T, ID> {

    void sharedCustomMethod(ID id);
}


public class MyImplMongoRepository<T, ID extends Serializable> extends SimpleMongoRepository<T, ID> implements MyMongoRepository<T, ID> {

    public void sharedCustomMethod(ID id) {
        // implementation goes here
    }
}

それは明らかですか?ドキュメントの単なるタイプミスでした。

于 2012-10-16T16:18:32.680 に答える
-1

まず、これは単純なコンパイル エラーです。スーパークラスにはコンストラクターがあり、コピーするか独自のコンストラクターを提供する必要があります。次に、JPA と MongoDB モジュールを混同しているようです。あなたはむしろ拡張したいと思いますSimpleMongoRepository

于 2012-03-26T16:04:26.020 に答える