Hibernate中有关Interceptor的学习

可以使用Hibernate的Interceptor对数据稽核,它避免了使用Lifecycle对Hibernate 的依赖。减少了Hibernate的侵入性。
使用sessionFactory.openSession(interceptor)
使其与session相关联。

但是常用的还是他的adaptor类EmptyInterceptor。我们只需要extends EmptyInterceptor,然后针对我们想要的方法进行override。


注意:Lifecycle和Interceptor都不能调用当前的session进行操作,因为他们接口中定义的方法都是由当前session负责调用的,如果在这些方法中又调用了当前session的话,就会导致管理混乱。解决方法有两种:1。创建一个新的session。但是两个不同的session独占两个数据库连接,完成一个操作,对并发量大的系统来说是个奢侈。2。重用当前数据库连接。使用session.connection()传递一个JDBC的Connection,然后tempSession=sessionFactory.openSession(connection),这样虽然是两个session,但是只有一个数据库连接,由于是共享数据库连接,那么tempSession就不需要进行close()了

posted on 2007-09-16 10:22 刘铮 阅读(599) 评论(0)  编辑  收藏 所属分类: Hibernate


只有注册用户登录后才能发表评论。


网站导航:
 
<2024年11月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
1234567

导航

统计

留言簿(1)

文章分类(141)

文章档案(147)

搜索

最新评论