Apabila bekerja dengan Spring Data JPA, pembangun sering memanfaatkan fungsi crud dan pencari terbina dalam yang disediakan oleh rangka kerja asas. Walau bagaimanapun, mungkin terdapat keadaan di mana menyesuaikan pencari atau menambah kaedah baharu sepenuhnya diperlukan. Artikel ini membincangkan cara menambah kaedah tersuai dengan pelaksanaannya untuk antara muka repositori JPA Spring Data tertentu.
Dalam contoh yang disediakan, antara muka AccountRepository memanjangkan JpaRepository dengan jenis berparameter Akaun dan Long, menunjukkan bahawa ia beroperasi pada entiti Akaun dengan kunci utama jenis Long. Selain itu, kaedah pencari tersuai yang dipanggil findByCustomer ditakrifkan menggunakan anotasi @Query, yang membolehkan pertanyaan JPQL tersuai dilaksanakan.
Untuk menyesuaikan sepenuhnya repositori, buat repositori yang berasingan antara muka seperti ini:
public interface AccountRepositoryCustom { public void customMethod(); }
Antara muka ini mengisytiharkan kaedah tersuai customMethod().
Kelas pelaksanaan untuk antara muka tersuai mesti disediakan:
public class AccountRepositoryImpl implements AccountRepositoryCustom { @Autowired private AccountRepository accountRepository; public void customMethod() { // Implementation goes here } }
Dalam contoh ini, AccountRepository disambungkan ke dalam kelas AccountRepositoryImpl, membenarkan sebarang kaedah repositori digunakan dalam pelaksanaan customMethod() jika diperlukan.
Langkah terakhir melibatkan merujuk antara muka tersuai dalam antara muka AccountRepository asal:
public interface AccountRepository extends JpaRepository<Account, Long>, AccountRepositoryCustom {}
Dengan melanjutkan kedua-dua JpaRepository dan AccountRepositoryCustom, AccountRepository antara muka menggabungkan kaedah repositori terbina dalam dengan kaedah tersuai yang ditakrifkan dalam AccountRepositoryCustom antara muka.
Atas ialah kandungan terperinci Bagaimana untuk Menambah Kaedah Tersuai pada Repositori JPA Data Spring Anda?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!