Computer >> Máy Tính >  >> Lập trình >> Java

Sự khác biệt giữa CrudRepository và JPARepository trong Java

Kho lưu trữ CrudRepository và JPA đều là giao diện của thư viện kho dữ liệu mùa xuân. Kho lưu trữ dữ liệu mùa xuân giảm mã soạn sẵn bằng cách cung cấp một số công cụ tìm được xác định trước để truy cập lớp dữ liệu cho các lớp bền bỉ khác nhau.

Kho lưu trữ JPA mở rộng kho lưu trữ CrudRepository và PagingAndSorting. Nó kế thừa một số công cụ tìm kiếm từ kho lưu trữ crud như findOne, lấy và xóa một thực thể. Nó cũng cung cấp một số phương pháp bổ sung liên quan đến JPA như xóa bản ghi hàng loạt, chuyển dữ liệu trực tiếp vào cơ sở dữ liệu và các phương pháp liên quan đến phân trang và sắp xếp.

Chúng tôi cần mở rộng kho lưu trữ này trong ứng dụng của mình và sau đó chúng tôi có thể truy cập tất cả các phương pháp có sẵn trong các kho lưu trữ này. Chúng tôi cũng có thể thêm các phương pháp mới bằng cách sử dụng truy vấn có tên hoặc truy vấn gốc dựa trên yêu cầu kinh doanh.

Kho lưu trữ
Sr. Không. Phím JPARepository CrudRepository
1 Thứ bậc JPA mở rộng kho lưu trữ crudRepository và PagingAndSorting Kho lưu trữ Crud là giao diện cơ sở và nó hoạt động như một giao diện đánh dấu.
2 Hỗ trợ hàng loạt JPA cũng cung cấp một số phương pháp bổ sung liên quan đến JPA, chẳng hạn như xóa bản ghi hàng loạt và chuyển dữ liệu trực tiếp vào cơ sở dữ liệu. Nó chỉ cung cấp các chức năng CRUD như findOne, save, v.v.
3 Hỗ trợ phân trang JPA cũng mở rộng kho lưu trữ PagingAndSorting. Nó cung cấp tất cả các phương pháp hữu ích cho việc triển khai phân trang. Kho lưu trữ Crud không cung cấp các phương pháp triển khai phân trang và sắp xếp.
4 Trường hợp Sử dụng JpaRepository liên kết các kho lưu trữ của bạn với công nghệ ổn định JPA, do đó cần tránh. Chúng ta nên sử dụng CrudRepository hoặc PagingAndSortingRepository tùy thuộc vào việc bạn có cần phân loại và phân trang hay không.

Ví dụ về JpaRepository

@Repository
public interface BookDAO extends JpaRepository {
   Book findByAuthor(@Param("id") Integer id);
}

Ví dụ về CrudRepository

@Repository
public interface BookDAO extends CrudRepository {
   Book Event findById(@Param("id") Integer id);
}