私はスプリングブートのアプリケーションで、スプリングデータJPA(ハイバーネイト4)を使用して自分のDBにアクセスしています。Spring Data JPAを使用したJpaRepositoryとCrudRepositoryの違いは何ですか?
疑問は、DAOインターフェイス(JPAが自動的にクエリを生成するために使用する)に関連しています。
1)AccomodationDAO:
@Repository
@Transactional(propagation = Propagation.MANDATORY)
public interface AccomodationDAO extends JpaRepository<Accomodation, Long> {
Accomodation findById(@Param("id") Long id);
}
2)EventDAO:
だから、私のプロジェクトで、私はこれらの2つのインターフェイス持って
public interface EventDAO extends CrudRepository<Event, Integer> {
public Event findByLocation(Point location);
public Event findById(@Param("id") Integer id);
}
彼らの両方が正常に動作をし、同じロジックを使用してクエリを宣言します。
私の唯一の疑いがある:第二つCrudRepositoryを実現しながら、最初のものは、JpaRepositoryを拡張します。
JpaRepositoryとCrudRepositoryの違いは、正確には何ですか?使用するのに最適な選択肢とは何ですか?あるいは、他の選択肢を使用するよりも良い選択肢は何ですか?
もう一つの疑問は、次のとおりです。私の定義されたDAOインタフェースがJpaRepositoryとCrudRepository自身のインターフェイスですを拡張し、なぜ?私が知っていることから、インターフェイスは実装されており、拡張されていません...何が欠けていますか?
これを参照してください。http://stackoverflow.com/questions/14014086/what-is-difference-between-crudrepository-and-jparepository-interfaces-in-spring要するに、これは同じですが、「CrudRepository」 JPA固有の機能が必要な場合を除きます。 – kaqqao