Java中CrudRepository和JPARepository的區別
CrudRepository和JPA repository都是Spring Data repository庫的介面。Spring Data repository透過提供一些預定義的查詢器來訪問各種持久層的資料層,從而減少了樣板程式碼。
JPA repository擴充套件了CrudRepository和PagingAndSorting repository。它繼承了Crud repository的一些查詢器,例如findOne、獲取和刪除實體。它還提供了一些與JPA相關的額外方法,例如批次刪除記錄、直接將資料重新整理到資料庫以及與分頁和排序相關的方法。
我們需要在我們的應用程式中擴充套件這個repository,然後我們就可以訪問這些repository中所有可用的方法。我們還可以根據業務需求,使用命名查詢或原生查詢新增新方法。
序號 | 關鍵點 | JPARepository | CrudRepository |
---|---|---|---|
1 | 繼承關係 | JPA擴充套件了crudRepository和PagingAndSorting repository | Crud Repository是基本介面,充當標記介面。 |
2 | 批次支援 | JPA還提供了一些與JPA相關的額外方法,例如批次刪除記錄和直接將資料重新整理到資料庫。 | 它只提供CRUD功能,例如findOne、save等。 |
3 | 分頁支援 | JPA repository也擴充套件了PagingAndSorting repository。它提供了所有對實現分頁有用的方法。 | Crud Repository不提供實現分頁和排序的方法。 |
4 | 用例 | JpaRepository將您的儲存庫繫結到JPA持久化技術,因此應避免使用。 | 我們應該根據是否需要排序和分頁來使用CrudRepository或PagingAndSortingRepository。 |
JpaRepository示例
@Repository public interface BookDAO extends JpaRepository { Book findByAuthor(@Param("id") Integer id); }
CrudRepository示例
@Repository public interface BookDAO extends CrudRepository { Book Event findById(@Param("id") Integer id); }
廣告