Spring Data Repositories
Spring Data repositories, CrudRepository กับ JpaRepository, คิวรีแบบกำหนดเอง, @EntityGraph, projection
1ความแตกต่างหลักระหว่าง JpaRepository และ CrudRepository คืออะไร?
ความแตกต่างหลักระหว่าง JpaRepository และ CrudRepository คืออะไร?
คำตอบ
JpaRepository สืบทอดทั้ง CrudRepository และ PagingAndSortingRepository โดยเพิ่มเมธอดเฉพาะของ JPA เช่น flush(), saveAndFlush() และ deleteInBatch() ส่วน CrudRepository ให้เฉพาะการดำเนินการ CRUD พื้นฐาน (save, findById, delete) การใช้ JpaRepository ทำให้เข้าถึงฟีเจอร์ JPA ขั้นสูงทั้งหมดได้โดยไม่ต้องประกอบหลายอินเทอร์เฟซเข้าด้วยกัน
2PagingAndSortingRepository มีบทบาทอย่างไรในลำดับชั้นของ repository?
PagingAndSortingRepository มีบทบาทอย่างไรในลำดับชั้นของ repository?
คำตอบ
PagingAndSortingRepository สืบทอด CrudRepository โดยเพิ่มเมธอด findAll(Pageable) และ findAll(Sort) สำหรับการแบ่งหน้าและการเรียงลำดับ ทำให้สามารถดึงข้อมูลทีละหน้าด้วย Page/Slice และเรียงลำดับผลลัพธ์ได้ JpaRepository สืบทอดอินเทอร์เฟซนี้ จึงให้การแบ่งหน้า การเรียงลำดับ และฟีเจอร์เฉพาะของ JPA ในอินเทอร์เฟซเดียว
3ลำดับชั้นที่ถูกต้องของอินเทอร์เฟซ repository ของ Spring Data คืออะไร?
ลำดับชั้นที่ถูกต้องของอินเทอร์เฟซ repository ของ Spring Data คืออะไร?
คำตอบ
ลำดับชั้นที่ถูกต้องคือ Repository (ฐาน) → CrudRepository (CRUD) → PagingAndSortingRepository (การแบ่งหน้า/การเรียงลำดับ) → JpaRepository (เฉพาะ JPA) แต่ละระดับเพิ่มฟีเจอร์: CrudRepository เพิ่ม save/delete, PagingAndSortingRepository เพิ่มการแบ่งหน้า/การเรียงลำดับ และ JpaRepository เพิ่ม flush/batch สถาปัตยกรรมนี้ช่วยให้เลือกระดับฟีเจอร์ที่ต้องการได้
เมธอดใดของ JpaRepository ที่อนุญาตให้ซิงโครไนซ์การเปลี่ยนแปลงกับฐานข้อมูลได้ทันที?
ในกรณีใดควรเลือกใช้ CrudRepository แทน JpaRepository?
+22 คำถามสัมภาษณ์
หัวข้อสัมภาษณ์ Spring Boot อื่นๆ
Spring Core - IoC & DI
Spring Boot Auto-Configuration
Spring Boot Starters
Application Properties & YAML
การทำ Logging ด้วย SLF4J และ Logback
Spring Boot DevTools
Spring MVC Basics
Spring REST Controllers
Request & Response Handling
การจัดการข้อยกเว้น
Bean Validation
พื้นฐาน Spring Data JPA
เอนทิตี JPA และความสัมพันธ์
การสืบค้น JPA
พื้นฐาน Spring Security
Spring Boot Actuator
การทดสอบหน่วยด้วย JUnit และ Mockito
การทดสอบ Spring Boot
Profiles และ Environment
RestTemplate และ WebClient
Async และ Scheduling
Caching ด้วย Spring
Spring WebFlux (Reactive)
ทรานแซกชัน Spring
การยืนยันตัวตนและการให้สิทธิ์ขั้นสูง
JWT และความปลอดภัยแบบ Stateless
OAuth2 และ Authorization Server
Spring Boot และ Docker
Microservices ด้วย Spring
Spring Cloud Config
การเพิ่มประสิทธิภาพการทำงาน
GraalVM Native Images
เชี่ยวชาญ Spring Boot สำหรับการสัมภาษณ์ครั้งถัดไป
เข้าถึงคำถามทั้งหมด flashcards แบบทดสอบเทคนิค แบบฝึกหัด code review และตัวจำลองสัมภาษณ์
เริ่มใช้ฟรี