[英]How to fetch Data using JPA for dynamic Where Clause
我是JPA的新手。 我目前在WAS 8.5.5中使用JPA2.0
我有一個搜索屏幕,其中有很多搜索條件。 現在,我必須在JPA中創建查詢,以便用戶選擇任何條件,它會自動檢查數據庫中的特定列。
我無法找到任何解決方案。 在我看來,對於每個搜索條件,我都必須編寫新的命名查詢。
任何建議或指示,將不勝感激。
您可以在命名查詢中執行此操作,但是您必須檢查每個可能的條件是否為空,以避免空值影響結果。 當心不必要的內部聯接,每個可為空的關系都應作為左聯接包括在內
select e from Employee e left join e.department d
where (:name is null or e.name = :name)
and (:email is null or e.email = :email)
and (:deptId is null or d.id = :deptId)
...
但是,根據可能的組合的復雜性,更好的選擇可能是不使用命名查詢,而是根據所選條件動態構建JPQL。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.