2017-06-16 5 views
1

私は(代わりにメソッド名から作成NamedQueriesとクエリを使用しての)クエリを作成するための を春、DATA JPAと選択@queryアノテーションを使用していますインターフェースがよさそうだ春データリポジトリImplenation

public interface EventRepository extends CrudRepository<Event, Long> { 
    @Query("select e from Event e where e.name = :eventName) 
    public List<Event>findEventByName(String eventName); 
} 

以下のように私は、データ・リポジトリを持っていますSpringのリファレンスドキュメントのように十分です。

しかし、上記の他にも多くの方法が必要なので、私はimplクラスが必要です。私は2つの問題に直面しています

私は、findEventByName方法は、自己のインタフェースに含まれている

  1. EventRepositoryのすべてのメソッドを実装するように求める。そのEventRepository

    を実装EventRepositoryImplのJavaを作成して、私が必要とする理由のImplで再びそれを実装するときクラス?
  2. そのCrudRepositoryのすべてのメソッドを実装するために求めて、私はそのあたりOOPSデザインを知っている、しかし、そこには多くの方法だから、

は、これらの問題のために、私は 、抽象としての私のEventRepositoryImplを定義することができ、これは正常に動作しているようです。

しかし、Springが抽象クラスをBeanとして使用するとき、私は他のことについて心配する必要があります。 、またはこの問題を解決するための優雅な方法があります。

あなたのお手伝いをお待ちしております。

答えて

2

これらのメソッドをすべて実装する必要はありません。抽象クラスを作成したり、抽象クラスを作成したりすることはありません。公式documentationを見てください。

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

class UserRepositoryImpl implements UserRepositoryCustom { 
    public void someCustomMethod(User user) { 
    // Your custom implementation 
    } 
} 

interface UserRepository extends CrudRepository<User, Long>, UserRepositoryCustom { 
    // Declare query methods here 
} 
+0

回答ありがとうございます。 –

関連する問題