Avatar
0
Vo Thanh Vuong Beginner
Vo Thanh Vuong Beginner
Query trong Spring
Khi em làm api về filter. Vdu: filter theo name, status, type. Những cái này có thể truyền vào hoặc không. Em thường tạo 1 DAO và dùng Hibernate EntityManager. Tạo câu query dùng if để check những trường name, status, type có empty không và gán vào câu truy vấn. Em thấy có nhiều cách khác nữa nhưng e k nắm. Nếu có cách nào hiệu quả hơn nhờ a chỉ giúp e với ạ.
  • Answer
spring
Remain: 5
2 Answers
Avatar
monkey Beginner
monkey Beginner
Filter như cách của em cũng tương đối hay, nhưng các câu lệnh truy vấn thường có nhiều điều kiện nên dùng filter tương đối cứng nhắc và chỉ dùng trong các truy vấn đã fix sẵn nghiệp vụ, vậy nên anh thường dùng cách viết câu truy vấn hơn là dùng filter
  • 1
  • Reply
Avatar
anaconda875 Beginner
anaconda875 Beginner
Cách 1: như bạn nói, code tay sử dụng if else

Cách 2: cũng code tay nhưng sử dụng Criteria api của jpa (code ít và clean hơn)

Cách 3: @Query("SELECT t FROM Test t WHERE (?1 IS NULL OR t.name LIKE %?1%)")

  • 0
  • Reply