![](/img/trans.png)
[英]JPA Criteria Query - How to implement Join on two tables to get desired result in single Query
[英]How to get result from JPA query, filtered by custom criteria
是否有機會通過似乎僅是Java函數的復雜自定義條件過濾查詢結果? 我希望此標准函數參與實體創建和將其放入結果集合之間。 例如,我有以下實體和查詢
@Entity
@NamedQueries{
@NamedQuery(name="myquery",query="...")
}
class MyEntity{
@Id
public long id;
@Column(name="NAME")
public String name;
@Column(name="description")
public String description;
}
我可以執行myquery
並指定分頁參數以獲取具有固定大小的結果集。 但是我想進行一些其他復雜的過濾,這些查詢無法表達。 如果我做一些查詢后處理功能,並用它來過濾查詢結果,我會破壞分頁不變的頁面大小。 這將不是很好和方便。
沒有簡單的方法可以做到這一點。 setFirstResult()
和setMaxResults()
方法應用於生成的SQL查詢。 例如,在MySQL中,將LIMIT (10, 10)
添加到查詢的where子句中。 因此,如果在執行查詢后過濾結果,則始終會得到較少的結果。
NamedQueries是實現此問題的錯誤方法。
您需要動態構建查詢。
EntityManager em=....
Query queryObject = em.createQuery(queryString);
要么
Query queryObject = em.createNativeQuery(queryString);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.