Spring Data JPA, bagian dari keluarga Spring Data yang lebih besar, memudahkan penerapan repositori berbasis JPA. Modul ini membahas peningkatan dukungan untuk lapisan akses data berbasis JPA. Ini mempermudah pembuatan aplikasi bertenaga Spring yang menggunakan teknologi akses data.
Mengimplementasikan lapisan akses data pada suatu aplikasi telah menjadi hal yang rumit selama beberapa waktu. Terlalu banyak kode boilerplate yang harus ditulis untuk menjalankan kueri sederhana serta melakukan penomoran halaman dan audit. Spring Data JPA bertujuan untuk meningkatkan implementasi lapisan akses data secara signifikan dengan mengurangi upaya ke jumlah yang sebenarnya diperlukan. Sebagai pengembang, Anda menulis antarmuka repositori, termasuk metode pencari khusus, dan Spring akan menyediakan implementasinya secara otomatis.
Implementasi metode CRUD untuk Entitas JPA
Pembuatan kueri dinamis dari nama metode kueri
Pemicuan JPA NamedQueries secara transparan dengan metode kueri
Kelas basis domain implementasi menyediakan properti dasar
Dukungan untuk audit transparan (dibuat, terakhir diubah)
Kemungkinan untuk mengintegrasikan kode repositori khusus
Integrasi Spring yang mudah dengan namespace khusus
Proyek ini diatur oleh Kode Etik Musim Semi. Dengan berpartisipasi, Anda diharapkan menjunjung tinggi kode etik ini. Silakan laporkan perilaku yang tidak dapat diterima ke [email protected].
Berikut ini teaser singkat aplikasi yang menggunakan Spring Data Repositories di Java:
public interface PersonRepository extends CrudRepository < Person , Long > {
List < Person > findByLastname ( String lastname );
List < Person > findByFirstnameLike ( String firstname );
}
@ Service
public class MyService {
private final PersonRepository repository ;
public MyService ( PersonRepository repository ) {
this . repository = repository ;
}
public void doWork () {
repository . deleteAll ();
Person person = new Person ();
person . setFirstname ( "Oliver" );
person . setLastname ( "Gierke" );
repository . save ( person );
List < Person > lastNameResults = repository . findByLastname ( "Gierke" );
List < Person > firstNameResults = repository . findByFirstnameLike ( "Oli%" );
}
}
@ Configuration
@ EnableJpaRepositories ( "com.acme.repositories" )
class AppConfig {
@ Bean
public DataSource dataSource () {
return new EmbeddedDatabaseBuilder (). setType ( EmbeddedDatabaseType . H2 ). build ();
}
@ Bean
public JpaTransactionManager transactionManager ( EntityManagerFactory emf ) {
return new JpaTransactionManager ( emf );
}
@ Bean
public JpaVendorAdapter jpaVendorAdapter () {
HibernateJpaVendorAdapter jpaVendorAdapter = new HibernateJpaVendorAdapter ();
jpaVendorAdapter . setDatabase ( Database . H2 );
jpaVendorAdapter . setGenerateDdl ( true );
return jpaVendorAdapter ;
}
@ Bean
public LocalContainerEntityManagerFactoryBean entityManagerFactory () {
LocalContainerEntityManagerFactoryBean lemfb = new LocalContainerEntityManagerFactoryBean ();
lemfb . setDataSource ( dataSource ());
lemfb . setJpaVendorAdapter ( jpaVendorAdapter ());
lemfb . setPackagesToScan ( "com.acme" );
return lemfb ;
}
}
Tambahkan ketergantungan Maven:
< dependency >
< groupId >org.springframework.data</ groupId >
< artifactId >spring-data-jpa</ artifactId >
< version >${version}</ version >
</ dependency >
Jika Anda lebih menyukai snapshot terbaru dari versi utama yang akan datang, gunakan repositori snapshot Maven kami dan nyatakan versi ketergantungan yang sesuai.
< dependency >
< groupId >org.springframework.data</ groupId >
< artifactId >spring-data-jpa</ artifactId >
< version >${version}-SNAPSHOT</ version >
</ dependency >
< repository >
< id >spring-snapshot</ id >
< name >Spring Snapshot Repository</ name >
< url >https://repo.spring.io/snapshot</ url >
</ repository >
Mengalami masalah dengan Spring Data? Kami ingin membantu!
Periksa dokumentasi referensi, dan Javadocs.
Pelajari dasar-dasar Spring – Spring Data dibangun di atas Spring Framework, periksa situs web spring.io untuk mendapatkan banyak dokumentasi referensi. Jika Anda baru memulai Spring, cobalah salah satu panduan ini.
Jika Anda melakukan peningkatan, lihat catatan rilis Spring Data JPA dan gulir ke bawah ke catatan yang Anda pertimbangkan. Lihat detailnya di sana. (Lihat juga rilis stabil terbaru)
Ajukan pertanyaan - kami memantau stackoverflow.com untuk pertanyaan yang diberi tag spring-data-jpa
. Anda juga dapat mengobrol dengan komunitas di Gitter.
Laporkan bug dengan Spring Data JPA di pelacak masalah GitHub.
Spring Data menggunakan GitHub sebagai sistem pelacakan masalah untuk mencatat bug dan permintaan fitur. Jika Anda ingin mengangkat suatu masalah, silakan ikuti rekomendasi di bawah ini:
Sebelum Anda mencatat bug, harap telusuri pelacak masalah untuk melihat apakah seseorang telah melaporkan masalah tersebut.
Jika masalah belum ada, buatlah masalah baru.
Harap berikan informasi sebanyak mungkin terkait laporan masalah, kami ingin mengetahui versi Spring Data yang Anda gunakan dan versi JVM, pelacakan tumpukan lengkap, dan informasi konfigurasi apa pun yang relevan.
Jika Anda perlu menempelkan kode, atau menyertakan pelacakan tumpukan, formatlah sebagai kode menggunakan triple backtick.
Jika memungkinkan, cobalah membuat kasus uji atau proyek yang mereplikasi masalah tersebut. Lampirkan tautan ke kode Anda atau file terkompresi yang berisi kode Anda. Gunakan database dalam memori jika memungkinkan atau atur database menggunakan Testcontainers.
Anda tidak perlu membangun dari sumber untuk menggunakan Spring Data (biner di repo.spring.io), tetapi jika Anda ingin mencoba yang terbaru dan terhebat, Spring Data dapat dengan mudah dibuat dengan maven wrapper. Anda juga memerlukan JDK 17 atau lebih tinggi.
$ ./mvnw clean install
Jika Anda ingin membangun dengan perintah mvn
biasa, Anda memerlukan Maven v3.8.0 atau lebih tinggi.
Lihat juga CONTRIBUTING.adoc jika Anda ingin mengirimkan permintaan penarikan, dan khususnya harap menandatangani Perjanjian Kontributor sebelum perubahan non-sepele pertama Anda.
Membangun dokumentasi juga akan membangun proyek tanpa menjalankan tes.
$ ./mvnw clean install -Pantora
Dokumentasi yang dihasilkan tersedia dari target/antora/site/index.html
.
Situs spring.io berisi beberapa panduan yang menunjukkan cara menggunakan Spring Data langkah demi langkah:
Mengakses Data dengan JPA: Pelajari cara bekerja dengan persistensi data JPA menggunakan Spring Data JPA.
Mengakses Data JPA dengan REST adalah panduan untuk membuat layanan web REST yang mengekspos data yang disimpan dengan JPA melalui repositori.
Contoh Data Musim Semi berisi contoh proyek yang menjelaskan fitur spesifik secara lebih detail.
Spring Data JPA adalah perangkat lunak Open Source yang dirilis di bawah lisensi Apache 2.0.