我已经在hibernate中为我的项目编写了很多查询。现在我的要求已经改变,并且我在MySql中的所有表中都添加了一个新的列名ACTIVE。我无权拒绝添加ACTIVE列。 ACTIVE字段可以保存值true或false,我也必须将其添加到条件中。所以,我一直在想,有没有办法在Hibernate中添加一个标准限制,这对我所做的所有查询都是常见的,而不是为我所做的每个查询都设置标准?
编辑:我猜想有点误会,对不起,我在打字的时候匆匆忙忙。 某些其他用户已将ACTIVE列设置为true或false。我需要的是一个全局过滤,仅针对我触发的每个查询的ACTIVE列为true的记录。这样的东西,但是我希望hibernate为我触发的每个查询添加ACTIVE ='true'过滤器,
select name from table where <other-conditions-here> and ACTIVE='true'
希望有意义。
谢谢和问候,
Sunayan Saikia
答案 0 :(得分:2)
我建议您实现一个自定义拦截器,它应该拦截您的查询并在执行之前附加ACTIVE
条件。
拦截器细节可以在这里找到:Hibernate Interceptors
答案 1 :(得分:2)
您可以使用休眠过滤器来实现此目的。有关详细信息,请参阅doc