Java 默认情况下,如何为特定实体启用hibernate筛选器?
我目前有一个实体,上面设置了where子句。我想把where子句放在一个过滤器上,并在默认情况下打开它(这样我就不会破坏任何现有的功能) 我想把它变成一个过滤器,这样我就可以禁用它,因为我有一个需要禁用它的用例Java 默认情况下,如何为特定实体启用hibernate筛选器?,java,hibernate,filter,entity,default,Java,Hibernate,Filter,Entity,Default,我目前有一个实体,上面设置了where子句。我想把where子句放在一个过滤器上,并在默认情况下打开它(这样我就不会破坏任何现有的功能) 我想把它变成一个过滤器,这样我就可以禁用它,因为我有一个需要禁用它的用例 如何在hibernate 3.1.3中做到这一点?hibernate文档似乎指出,过滤器(类似于SQL视图)是查看数据的可选方式,并不代表查看数据的“默认”方式。我的建议是坚持使用where子句,并为不需要过滤数据的用例编写一个特殊的访问器例程 我认为实现您要求的另一种方法是将过滤器的启
如何在hibernate 3.1.3中做到这一点?hibernate文档似乎指出,过滤器(类似于SQL视图)是查看数据的可选方式,并不代表查看数据的“默认”方式。我的建议是坚持使用where子句,并为不需要过滤数据的用例编写一个特殊的访问器例程 我认为实现您要求的另一种方法是将过滤器的启用封装在“HibernateUtil”类中(假设您有这样一个beast负责打开新会话供代码使用)。默认情况下,获取新会话的方法将实例化会话,然后在返回之前启用筛选器。大概是这样的:
public Session newSession(){
Session session = sessionFactory.openSession();
// this assumes you don't have criteria to set depending on the context
session.enableFilter("yourFilter");
return session;
}
然后在您的特定用例中,您可以disableFilter(“您的过滤器”)代码>