Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

ความแตกต่างระหว่าง CrudRepository และ JPARepository ใน Java


CrudRepository และที่เก็บ JPA เป็นอินเทอร์เฟซของไลบรารีที่เก็บข้อมูลสปริง ที่เก็บข้อมูล Spring ลดโค้ดสำเร็จรูปโดยจัดเตรียมโปรแกรมค้นหาที่กำหนดไว้ล่วงหน้าบางส่วนเพื่อเข้าถึงชั้นข้อมูลสำหรับเลเยอร์การคงอยู่ต่างๆ

ที่เก็บ JPA ขยายที่เก็บ CrudRepository และ PagingAndSorting มันสืบทอดตัวค้นหาบางตัวจากที่เก็บ crud เช่น findOne รับและลบเอนทิตี นอกจากนี้ยังมีวิธีการพิเศษบางอย่างที่เกี่ยวข้องกับ JPA เช่น การลบเร็กคอร์ดในชุดงาน การล้างข้อมูลไปยังฐานข้อมูลโดยตรง และวิธีการที่เกี่ยวข้องกับการแบ่งหน้าและการเรียงลำดับ

เราจำเป็นต้องขยายพื้นที่เก็บข้อมูลนี้ในแอปพลิเคชันของเรา จากนั้นเราจึงสามารถเข้าถึงวิธีการทั้งหมดที่มีอยู่ในที่เก็บเหล่านี้ นอกจากนี้เรายังสามารถเพิ่มวิธีการใหม่โดยใช้การสืบค้นแบบมีชื่อหรือแบบเนทีฟตามความต้องการทางธุรกิจ

ซีเนียร์ เลขที่ คีย์ JPARepository CrudRepository
1 ลำดับชั้น JPA ขยายพื้นที่เก็บข้อมูล crudRepository และ PagingAndSorting Crud Repository เป็นอินเทอร์เฟซพื้นฐานและทำหน้าที่เป็นส่วนต่อประสานตัวทำเครื่องหมาย
2 รองรับแบทช์ JPA ยังมีวิธีการพิเศษบางอย่างที่เกี่ยวข้องกับ JPA เช่น การลบเร็กคอร์ดในแบตช์และการล้างข้อมูลไปยังฐานข้อมูลโดยตรง มีเฉพาะฟังก์ชัน CRUD เช่น findOne บันทึก ฯลฯ
3 รองรับการแบ่งหน้า ที่เก็บ JPA ยังขยายที่เก็บ PagingAndSorting ด้วย มันมีวิธีการทั้งหมดที่เป็นประโยชน์สำหรับการใช้การแบ่งหน้า Crud Repository ไม่มีวิธีการสำหรับการใช้การแบ่งหน้าและการเรียงลำดับ
4 ใช้ตัวพิมพ์ JpaRepository เชื่อมโยงที่เก็บของคุณกับเทคโนโลยีการคงอยู่ของ JPA ดังนั้นจึงควรหลีกเลี่ยง เราควรจะใช้ CrudRepository หรือ PagingAndSortingRepository ขึ้นอยู่กับว่าคุณต้องการ sorting และ paging หรือไม่

ตัวอย่างของ JpaRepository

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

ตัวอย่าง CrudRepository

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