创建新Hibernate会话时,是否有办法拦截它们?我需要访问每个Session实例以启用带有参数的Hibernate过滤器。
我唯一可行的解决方案是包装SessionFactory,但这涉及到许多半讨厌的骇客,并且它要求我实现大约60种方法,其中只有少数几种很有趣。
由于某些令人讨厌的原因,Hibernate的SessionFactory实现被声明为final,因此扩展它不是一种选择。我也尝试过方面和Java代理,但没有任何运气。
我已经解决了这个问题(至少在Hibernate为此提供了适当的API之前)。解决方案的简短版本:
较长版本:http : //www.developer-b.com/blog/entry/1635/2010/oct/07/intercepting-hibernate- sessions
来源/ Github:http : //github.com/multi-tenant/grails-hibernate-hijacker(仍处于实验阶段)
感谢您的输入!