我创建了一个过滤器来申请特定 bean 的会话。每次获取会话时,我都会启用过滤器:
@Override
protected final Session getHibernateSession() {
enableFilter("filterName",
"parameterName", "parameterValue");
return super.getHibernateSession();
}
现在我希望对于特定查询,不需要启用此过滤器。存在禁用过滤器的选项,但我无法找到合适的位置来执行此操作。我试过了:
DetachedCriteria criteria = criteria();
// some restrictions and projections
disableFilter("filterName")
return find(criteria);
问题是,当 find(criteria) 被触发时,再次获取休眠会话,从而启用过滤器。