gpt4 book ai didi

java - 默认情况下,如何为特定实体打开 hibernate 过滤器?

转载 作者:行者123 更新时间:2023-12-03 18:24:35 25 4
gpt4 key购买 nike

我目前有一个实体,上面设置了 where 子句。我想把 where 子句放在过滤器上,并默认打开它(这样我就不会破坏任何现有的功能)。

我想把它变成一个过滤器,这样我就可以禁用它,因为我有一个需要禁用它的用例。

我怎样才能在 hibernate 3.1.3 中做到这一点?

最佳答案

Hibernate 文档似乎声明过滤器(类似于 SQL View )是查看数据的可选方式,并不代表查看数据的“默认”方式。我的建议是坚持使用您拥有的 where 子句,并为您不想要过滤数据的用例编写一个特殊的访问器例程。

我想实现您所要求的另一种替代方法是将过滤器的启用封装在您的“HibernateUtil”类中(假设您有一个负责打开新 session 供您的代码使用的野兽)。默认情况下,您获取新 session 的方法将实例化 session ,然后在返回之前启用过滤器。像这样的东西:

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("yourFilter"); .

关于java - 默认情况下,如何为特定实体打开 hibernate 过滤器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1906871/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com