在Hibernate中的过滤器运行代码
题
我有使用Apache四郎(以前JSecurity)实现的相当复杂的安全机制。为了知道对象确切的可见性规则,我需要运行一些代码(即查找用户的角色,权限,团体等)。我想运行一个告诉我反对当前用户有权查看的查询。
我发现,休眠过滤器给你一个过滤器应用到你的对象/查询,这似乎是我在这里可以使用哪些能力。
但是,我发现了例子似乎在数据库上为中心(即说我有一个字段/列ISVISIBLE,过滤器时,它被设置为真)。有没有一种方法,我可以运行一些代码为休眠过滤器,或者是它只是一个薄薄的一层,增加了一点点WHERE子句您所有的疑问。
其实我使用这里面Grails的/格姆基础设施,因此,或许还有一些其他的解决方案是有效的。一个插件存在集成休眠过滤器,但除非我可以用它与一些代码为运行休眠过滤过程的一部分,它不会真的帮助我在这里。
解决方案
不幸的是,Hibernate的过滤器将不会解决你的问题。它们可以是非常有用的,但它是完全是一个薄层,增加了一点点WHERE子句每取
由于您使用的Grails的,你可能会发现,AOP会给你你在找什么。看看这个: http://www.infoq.com/articles/aop-与-常规
好运。
不隶属于 StackOverflow