Skip to content

3.3.3 Khai báo JPA Repository

Khi bạn tạo các phiên bản repository sử dụng JdbcTemplate, bạn đã khai báo rõ ràng các phương thức mà bạn muốn repository cung cấp. Nhưng với Spring Data JDBC, bạn có thể bỏ qua việc triển khai lớp cụ thể và thay vào đó mở rộng từ giao diện CrudRepository. Thực tế là, CrudRepository cũng hoạt động rất tốt với Spring Data JPA. Ví dụ, dưới đây là giao diện IngredientRepository mới:

java
package tacos.data;

import org.springframework.data.repository.CrudRepository;

import tacos.Ingredient;

public interface IngredientRepository
      extends CrudRepository<Ingredient, String> {
}

Thực ra, giao diện IngredientRepository mà chúng ta sẽ sử dụng với Spring Data JPA hoàn toàn giống với cái mà chúng ta đã định nghĩa để sử dụng với Spring Data JDBC. Giao diện CrudRepository được sử dụng phổ biến trong nhiều dự án của Spring Data, bất kể cơ chế lưu trữ bên dưới là gì. Tương tự, bạn có thể định nghĩa OrderRepository cho Spring Data JPA giống hệt như đã làm với Spring Data JDBC, như sau:

java
package tacos.data;

import org.springframework.data.repository.CrudRepository;

import tacos.TacoOrder;

public interface OrderRepository
      extends CrudRepository<TacoOrder, Long> {
}

Các phương thức được cung cấp bởi CrudRepository rất tuyệt vời cho việc lưu trữ thực thể theo cách tổng quát. Nhưng nếu bạn có những yêu cầu vượt quá việc lưu trữ cơ bản thì sao? Hãy cùng xem cách tùy chỉnh các repository để thực hiện các truy vấn đặc thù cho miền nghiệp vụ của bạn.

Released under the MIT License.