up1 / assignment-java-boot-camp

8 stars 103 forks source link

สอบถามการใช้งาน Spring JPA หน่อยครับ #28

Open wavemoroc001 opened 2 years ago

wavemoroc001 commented 2 years ago

อยากสอบถามว่าตัวของ Spring data jpa นั้นสามารถที่จะปรับเปลี่ยน query statement ณ ตอน runtime ได้ไหมครับ ที่อยากได้แบบนี้เพราะอยากจะนำไปทำตัว order filter ที่หลังบ้านแล้วส่ง response ไปโชว์ที่หน้าบ้านได้เลยอะครับ usecase มีประมาณนี้ครับ

Use case

Request ที่ทาง FE ส่งเข้า

{
 "orderId" : "",
  "buyBy" :  "Hank Artisan",
  "buyAt" : "2022-03-09 15:47:54",
  ...
}
 select o from orders o where o.buyBy like :o.buyBy = :buyBy and o.buyAt = date :buyAt ;

กรณีที่ไม่ส่ง parameter บาง parameter มาจะปรับ where clause ตามด้านล่าง

{
 "orderId" : "",
  "buyBy" :  "",
  "buyAt" : "2022-03-09 15:47:54",
  ...
}
 select o from orders o where o.buyAt = date :buyAt ;
up1 commented 2 years ago

ทำได้ครับ แต่ซับซ้อยขึ้นหน่อย โดยใช้ list ของ predicate สำหรับกำหนด criteria ต่าง ๆ จาก parameter ที่ส่งมาครับ

wavemoroc001 commented 2 years ago

โอเครคับ ขอบคุณคับบบ