Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 过滤器还是拦截器?如何以某种方式预先修改会话中的所有查询?_Java_Hibernate - Fatal编程技术网

Java 过滤器还是拦截器?如何以某种方式预先修改会话中的所有查询?

Java 过滤器还是拦截器?如何以某种方式预先修改会话中的所有查询?,java,hibernate,Java,Hibernate,我已经四处寻找了一段时间,但仍然无法确定我需要的是过滤器还是onPrepareStatement()拦截器 我的使用案例如下:在用户登录到我的应用程序后,根据几个复杂的决定,该用户获得特定的访问权限,并根据这些权限拥有(或没有)访问特定数据的权限。我认为实现这一点的最简单方法是使用一些限制“连接”每个查询,例如 SELECT * FROM sumfin WHERE cond1 and cond2; 此处cond2是限制条件。所以基本上我想附加和cond2到所有现有查询。使用hibernate在

我已经四处寻找了一段时间,但仍然无法确定我需要的是过滤器还是onPrepareStatement()拦截器

我的使用案例如下:在用户登录到我的应用程序后,根据几个复杂的决定,该用户获得特定的访问权限,并根据这些权限拥有(或没有)访问特定数据的权限。我认为实现这一点的最简单方法是使用一些限制“连接”每个查询,例如

SELECT * FROM sumfin WHERE cond1 and cond2;

此处
cond2
是限制条件。所以基本上我想附加
和cond2到所有现有查询。使用hibernate在java中实现这一点的最佳方法是什么?

这似乎是错误的方法。使用数据库视图和多租户会话工厂…这听起来很合理,谢谢@bmorris591,我将仔细看看多租户会话工厂。@bmorris591 hibernate中的多租户似乎真的是一件好事,我想知道为什么我以前没有使用它。。。然后我突然明白了原因:)遗憾的是,我只能使用hibernate3.6。所以我的问题仍然存在。