如何使用CreateQuery忽略@Filter标记的实体类

时间:2013-06-13 05:18:58

标签: java spring hibernate

添加了@Filter的一个java实体类。

在将实体类与hibernate服务一起使用时,所有查询都会在where where条件中添加过滤器。我需要忽略一个案例。我的意思是:

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

在上面的查询中,我添加了常用过滤器tenant_id,我必须忽略上面的查询。

1 个答案:

答案 0 :(得分:1)

您可以使用Session.enableFilter(String filterName)Session.disableFilter(String filterName)启用/停用过滤器。因此,您可以在执行查询之前禁用过滤器,然后再启用它。请记住,EntityManager不支持此功能,因此您可以访问Hibernate会话,例如:

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