Spring Data Repositories
Spring Data repositories、CrudRepository と JpaRepository、カスタムクエリ、@EntityGraph、プロジェクション
1JpaRepository と CrudRepository の主な違いは何ですか?
JpaRepository と CrudRepository の主な違いは何ですか?
回答
JpaRepository は CrudRepository と PagingAndSortingRepository の両方を継承し、flush()、saveAndFlush()、deleteInBatch() などの JPA 固有のメソッドを追加します。CrudRepository は基本的な CRUD 操作(save、findById、delete)のみを提供します。JpaRepository を使うと、複数のインターフェースを組み合わせる必要なく、すべての高度な JPA 機能にアクセスできます。
2repository 階層における PagingAndSortingRepository の役割は何ですか?
repository 階層における PagingAndSortingRepository の役割は何ですか?
回答
PagingAndSortingRepository は CrudRepository を継承し、ページネーションとソートのための findAll(Pageable) および findAll(Sort) メソッドを追加します。これにより Page/Slice を使ってデータをページ単位で取得し、結果をソートできます。JpaRepository はこのインターフェースを継承しているため、ページネーション、ソート、JPA 固有の機能を 1 つのインターフェースで提供します。
3Spring Data の repository インターフェースの正しい階層はどれですか?
Spring Data の repository インターフェースの正しい階層はどれですか?
回答
正しい階層は Repository(基底)→ CrudRepository(CRUD)→ PagingAndSortingRepository(ページネーション/ソート)→ JpaRepository(JPA 固有)です。各レベルが機能を追加します。CrudRepository は save/delete を、PagingAndSortingRepository はページネーション/ソートを、JpaRepository は flush/batch を追加します。このアーキテクチャにより、必要な機能レベルを選択できます。
JpaRepository のどのメソッドが、変更を即座にデータベースと同期できますか?
どのような場合に JpaRepository よりも CrudRepository を選ぶべきですか?
+22 面接問題