Spring Data JPA ซึ่งเป็นส่วนหนึ่งของตระกูล Spring Data ที่ใหญ่ขึ้น ทำให้ง่ายต่อการใช้งานที่เก็บข้อมูลแบบ JPA โมดูลนี้เกี่ยวข้องกับการสนับสนุนขั้นสูงสำหรับชั้นการเข้าถึงข้อมูลที่ใช้ JPA ช่วยให้สร้างแอปพลิเคชันที่ขับเคลื่อนโดย Spring ที่ใช้เทคโนโลยีการเข้าถึงข้อมูลได้ง่ายขึ้น
การใช้ชั้นการเข้าถึงข้อมูลของแอปพลิเคชันเป็นเรื่องที่ยุ่งยากมาระยะหนึ่งแล้ว ต้องมีการเขียนโค้ดสำเร็จรูปมากเกินไปเพื่อดำเนินการสืบค้นแบบง่าย ๆ รวมถึงดำเนินการแบ่งหน้าและการตรวจสอบ Spring Data JPA มีเป้าหมายที่จะปรับปรุงการใช้งานชั้นการเข้าถึงข้อมูลอย่างมีนัยสำคัญโดยการลดความพยายามลงให้เหลือตามจำนวนที่จำเป็นจริง ในฐานะนักพัฒนา คุณเขียนอินเทอร์เฟซพื้นที่เก็บข้อมูลของคุณ รวมถึงวิธีการค้นหาแบบกำหนดเอง แล้ว Spring จะจัดเตรียมการใช้งานโดยอัตโนมัติ
การใช้วิธี CRUD สำหรับเอนทิตี JPA
การสร้างแบบสอบถามแบบไดนามิกจากชื่อวิธีการสืบค้น
การทริกเกอร์ JPA NamedQueries อย่างโปร่งใสโดยวิธีการสืบค้น
คลาสฐานโดเมนการใช้งานที่ให้คุณสมบัติพื้นฐาน
รองรับการตรวจสอบที่โปร่งใส (สร้าง, เปลี่ยนแปลงล่าสุด)
ความเป็นไปได้ในการรวมรหัสพื้นที่เก็บข้อมูลที่กำหนดเอง
การรวม Easy Spring เข้ากับเนมสเปซที่กำหนดเอง
โครงการนี้อยู่ภายใต้หลักจรรยาบรรณของ Spring ในการเข้าร่วม คุณจะต้องปฏิบัติตามจรรยาบรรณนี้ กรุณารายงานพฤติกรรมที่ไม่สามารถยอมรับได้ที่ [email protected]
นี่เป็นตัวอย่างสั้นๆ ของแอปพลิเคชันที่ใช้ Spring Data Repositories ใน 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 ;
}
}
เพิ่มการพึ่งพา Maven:
< dependency >
< groupId >org.springframework.data</ groupId >
< artifactId >spring-data-jpa</ artifactId >
< version >${version}</ version >
</ dependency >
หากคุณต้องการสแนปช็อตล่าสุดของเวอร์ชันหลักที่กำลังจะมาถึง ให้ใช้พื้นที่เก็บข้อมูลสแน็ปช็อต Maven ของเราและประกาศเวอร์ชันอ้างอิงที่เหมาะสม
< 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 >
มีปัญหากับ Spring Data ใช่ไหม เรายินดีที่จะช่วย!
ตรวจสอบเอกสารอ้างอิงและ Javadocs
เรียนรู้พื้นฐานของ Spring – Spring Data สร้างขึ้นบน Spring Framework ตรวจสอบเว็บไซต์ spring.io เพื่อดูเอกสารอ้างอิงมากมาย หากคุณเพิ่งเริ่มต้นใช้งาน Spring ให้ลองใช้คำแนะนำข้อใดข้อหนึ่ง
หากคุณกำลังอัปเกรด โปรดดูบันทึกประจำรุ่น Spring Data JPA และเลื่อนลงไปที่รายการที่คุณกำลังพิจารณา ดูรายละเอียดที่นั่น (ตรวจสอบการเปิดตัวที่เสถียรล่าสุดด้วย)
ถามคำถาม - เราตรวจสอบ stackoverflow.com สำหรับคำถามที่แท็กด้วย spring-data-jpa
คุณยังสามารถแชทกับชุมชนบน Gitter ได้อีกด้วย
รายงานจุดบกพร่องด้วย Spring Data JPA ในตัวติดตามปัญหา GitHub
Spring Data ใช้ GitHub เป็นระบบติดตามปัญหาเพื่อบันทึกจุดบกพร่องและคำขอคุณสมบัติ หากคุณต้องการแจ้งปัญหา โปรดปฏิบัติตามคำแนะนำด้านล่าง:
ก่อนที่คุณจะบันทึกข้อบกพร่อง โปรดค้นหาตัวติดตามปัญหาเพื่อดูว่ามีคนรายงานปัญหาแล้วหรือไม่
หากไม่มีปัญหาอยู่แล้ว ให้สร้างปัญหาใหม่
โปรดระบุข้อมูลให้มากที่สุดเท่าที่จะเป็นไปได้พร้อมกับรายงานปัญหา เราต้องการทราบเวอร์ชันของ Spring Data ที่คุณใช้และเวอร์ชัน JVM รวมถึงสแต็กเทรซที่สมบูรณ์ และข้อมูลการกำหนดค่าที่เกี่ยวข้อง
หากคุณต้องการวางโค้ด หรือรวมสแต็กเทรซ ให้จัดรูปแบบเป็นโค้ดโดยใช้ Triple Backtick
หากเป็นไปได้ให้ลองสร้างกรณีทดสอบหรือโครงการที่จำลองปัญหา แนบลิงก์ไปยังโค้ดของคุณหรือไฟล์บีบอัดที่มีโค้ดของคุณ ใช้ฐานข้อมูลในหน่วยความจำถ้าเป็นไปได้หรือตั้งค่าฐานข้อมูลโดยใช้ Testcontainers
คุณไม่จำเป็นต้องสร้างจากแหล่งที่มาเพื่อใช้ Spring Data (ไบนารีใน repo.spring.io) แต่หากคุณต้องการลองใช้ Spring Data ล่าสุดและยิ่งใหญ่ที่สุด คุณสามารถสร้าง Spring Data ได้อย่างง่ายดายด้วย maven wrapper คุณต้องมี JDK 17 ขึ้นไป
$ ./mvnw clean install
หากคุณต้องการสร้างด้วยคำสั่ง mvn
ปกติ คุณจะต้องใช้ Maven v3.8.0 ขึ้นไป
โปรดดูที่ CONTRIBUTING.adoc หากคุณต้องการส่งคำขอดึง และโดยเฉพาะอย่างยิ่ง โปรดลงนามในข้อตกลงของผู้ร่วมให้ข้อมูลก่อนการเปลี่ยนแปลงที่ไม่สำคัญครั้งแรกของคุณ
การสร้างเอกสารประกอบจะสร้างโปรเจ็กต์โดยไม่ต้องทำการทดสอบ
$ ./mvnw clean install -Pantora
เอกสารที่สร้างขึ้นมีอยู่ใน target/antora/site/index.html
ไซต์ spring.io มีคำแนะนำหลายข้อที่แสดงวิธีใช้ Spring Data ทีละขั้นตอน:
การเข้าถึงข้อมูลด้วย JPA: เรียนรู้วิธีทำงานกับการคงอยู่ของข้อมูล JPA โดยใช้ Spring Data JPA
การเข้าถึงข้อมูล JPA ด้วย REST เป็นแนวทางในการสร้างบริการเว็บ REST โดยเปิดเผยข้อมูลที่จัดเก็บด้วย JPA ผ่านที่เก็บข้อมูล
Spring Data Examples มีโปรเจ็กต์ตัวอย่างที่อธิบายคุณสมบัติเฉพาะโดยละเอียดมากขึ้น
Spring Data JPA เป็นซอฟต์แวร์โอเพ่นซอร์สที่เผยแพร่ภายใต้ลิขสิทธิ์ Apache 2.0