Java 过滤器还是拦截器?如何以某种方式预先修改会话中的所有查询?
我已经四处寻找了一段时间,但仍然无法确定我需要的是过滤器还是onPrepareStatement()拦截器 我的使用案例如下:在用户登录到我的应用程序后,根据几个复杂的决定,该用户获得特定的访问权限,并根据这些权限拥有(或没有)访问特定数据的权限。我认为实现这一点的最简单方法是使用一些限制“连接”每个查询,例如Java 过滤器还是拦截器?如何以某种方式预先修改会话中的所有查询?,java,hibernate,Java,Hibernate,我已经四处寻找了一段时间,但仍然无法确定我需要的是过滤器还是onPrepareStatement()拦截器 我的使用案例如下:在用户登录到我的应用程序后,根据几个复杂的决定,该用户获得特定的访问权限,并根据这些权限拥有(或没有)访问特定数据的权限。我认为实现这一点的最简单方法是使用一些限制“连接”每个查询,例如 SELECT * FROM sumfin WHERE cond1 and cond2; 此处cond2是限制条件。所以基本上我想附加和cond2到所有现有查询。使用hibernate在
SELECT * FROM sumfin WHERE cond1 and cond2;
此处
cond2
是限制条件。所以基本上我想附加和cond2代码>到所有现有查询。使用hibernate在java中实现这一点的最佳方法是什么?这似乎是错误的方法。使用数据库视图和多租户会话工厂…这听起来很合理,谢谢@bmorris591,我将仔细看看多租户会话工厂。@bmorris591 hibernate中的多租户似乎真的是一件好事,我想知道为什么我以前没有使用它。。。然后我突然明白了原因:)遗憾的是,我只能使用hibernate3.6。所以我的问题仍然存在。