私は、に取り組んでいます春のブートを使用するアプリケーション春データJPA私のDBへのアクセスに(休止状態4上を)。
私の疑問は、DAOインターフェース(JPAがクエリを自動的に生成するために使用する)に関連しています。
したがって、私のプロジェクトには、次の2つのインターフェイスがあります。
1)宿泊DAO:
@Repository
@Transactional(propagation = Propagation.MANDATORY)
public interface AccomodationDAO extends JpaRepository<Accomodation, Long> {
Accomodation findById(@Param("id") Long id);
}
2)EventDAO:
public interface EventDAO extends CrudRepository<Event, Integer> {
public Event findByLocation(Point location);
public Event findById(@Param("id") Integer id);
}
どちらも正常に機能し、同じロジックを使用してクエリを宣言します。
私の唯一の疑問は、最初のものはJpaRepositoryを拡張し、2番目のものはCrudRepositoryを実装するということです。
JpaRepositoryとCrudRepositoryの違いは正確には何ですか?使用するのに最適な選択肢は何ですか、またはどのような場合に他の選択肢の代わりに一方を使用する方が良いですか?
もう1つの疑問は、定義したDAOインターフェイスがそれ自体がインターフェイスであるJpaRepositoryとCrudRepositoryを拡張する理由です。私が知っていることから、インターフェースは実装されており、拡張されていません...何が欠けていますか?
JpaRepositoryはCrudRepositoryを拡張することに注意してください。これら2つのインターフェースのJavaDocを比較してください。
要するに JpaRepository
List
「の代わりのsのIterable
s」のJPAを使用している場合は、JpaRepositoryを使用する必要があります。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加