簡體   English   中英

如何使用JPA獲取動態Where子句的數據

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM