2013-06-13 29 views
1

添加了一個java實體類@Filter如何使用CreateQuery忽略@Filter標記的實體類

雖然使用實體類與hibernate服務,所有查詢將添加與條件的過濾器。我需要忽略一個案例。我的意思是:

entityManager.CreateQuery("SELECT * from ABCTABLE where tenant_id=9999"); 

在上面查詢我增加的公共過濾器tenant_id和普通過濾器我都不理了上面的查詢。

回答

1

您可以使用Session.enableFilter(String filterName)Session.disableFilter(String filterName)啓用/禁用過濾器。因此,您可以在執行查詢之前禁用篩選器,然後啓用它。請記住,EntityManager不支持此功能,所以你必須訪問Hibernate會話,例如:當使用禁用過濾器還它給錯誤

((Session)entityManager.getDelegate()).disableFilter(filterName); 
+0

喜。像org.hibernate.HibernateException:過濾器[tenant]參數[tenant_id]值未設置 – Ingreatway

+0

我不能在沒有看到您的代碼的情況下對此進行評論。我建議你用相關的代碼和堆棧跟蹤來詢問另一個問題。 – lunr