Hibernate中针对所有表的所有查询的通用条件限制

时间:2012-11-19 06:07:29

标签: java mysql hibernate hibernate-criteria

我已经在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

2 个答案:

答案 0 :(得分:2)

我建议您实现一个自定义拦截器,它应该拦截您的查询并在执行之前附加ACTIVE条件。

拦截器细节可以在这里找到:Hibernate Interceptors

答案 1 :(得分:2)

您可以使用休眠过滤器来实现此目的。有关详细信息,请参阅doc

相关问题