การสืบค้น JPA
การสืบค้น JPA: การอนุมานจากชื่อเมธอด, @Query ด้วย JPQL, native query, การแบ่งหน้า, การจัดเรียง
1JPQL คืออะไร?
JPQL คืออะไร?
คำตอบ
JPQL (Java Persistence Query Language) เป็นภาษาเชิงอ็อบเจกต์ที่สืบค้นเอนทิตี JPA แทนที่จะเป็นตารางในฐานข้อมูล ต่างจาก SQL แบบ native ตรงที่ JPQL ใช้ชื่อคลาสและชื่อพร็อพเพอร์ตี ซึ่งช่วยรักษาการนามธรรมของอ็อบเจกต์และทำให้ย้ายข้ามระบบฐานข้อมูลที่แตกต่างกันได้ง่ายขึ้น ควรใช้ JPQL เป็นค่าเริ่มต้น เว้นแต่จำเป็นต้องใช้ความสามารถเฉพาะของ SQL
2annotation ใดที่ช่วยให้สามารถรันคำสั่งสืบค้น JPQL หรือ SQL แบบกำหนดเองได้?
annotation ใดที่ช่วยให้สามารถรันคำสั่งสืบค้น JPQL หรือ SQL แบบกำหนดเองได้?
คำตอบ
annotation @Query ช่วยให้นิยามคำสั่งสืบค้นแบบกำหนดเองได้โดยตรงในรีพอซิทอรีของ Spring Data JPA โดยค่าเริ่มต้นสามารถใส่ JPQL ได้ หรือ SQL แบบ native หากตั้งค่าแอตทริบิวต์ nativeQuery เป็น true annotation นี้ให้ความยืดหยุ่นมากกว่า query method ที่ได้มาจากชื่อเมธอด โดยเฉพาะสำหรับคำสั่งสืบค้นที่ซับซ้อนซึ่งมี join หรือ subquery
3จะผูกพารามิเตอร์ของเมธอดเข้ากับ @Query ได้อย่างไร?
จะผูกพารามิเตอร์ของเมธอดเข้ากับ @Query ได้อย่างไร?
คำตอบ
annotation @Param ช่วยให้ตั้งชื่อพารามิเตอร์ที่ใช้ในคำสั่งสืบค้น @Query ได้อย่างชัดเจน วิธีนี้อ่านง่ายและทนทานกว่าการใช้ตำแหน่งแบบดัชนี โดยเฉพาะระหว่างการรีแฟกเตอร์โค้ด annotation นี้จำเป็นสำหรับพารามิเตอร์แบบมีชื่อใน JPQL และแนะนำให้ใช้แม้กับคำสั่งสืบค้น SQL แบบ native เพื่อเพิ่มความสามารถในการบำรุงรักษา
ใน JPQL clause ใดที่ช่วยกรองผลลัพธ์ได้?
ความแตกต่างหลักระหว่าง JPQL กับ SQL แบบ native คืออะไร?
+27 คำถามสัมภาษณ์
หัวข้อสัมภาษณ์ 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 และความสัมพันธ์
Spring Data Repositories
พื้นฐาน 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 และตัวจำลองสัมภาษณ์
เริ่มใช้ฟรี