使用事务的时候,session对象应该是同一个,这样开启的事务才算有效
javaweb三层架构中一般是在service层开启事务,在dao层中使用,但是这个时候要保证他们使用的session对象是同一个对象
hibernate配置本地线程对象(ThreadLocal)
在hibernate核心配置文件中配置
<property name="current_session_context_class">thread</property>
配置之后在sessionFactory中使用getCurrentSession()方法获取session对象(相当于连接池的链接对象)
注意
使用了这种方式获取session后可以不再每次都手动关闭session,事务提交后会自动的关闭session对象
本文讲解了在Java Web三层架构中如何正确管理事务,强调了Service层开启事务及DAO层使用同一Session的重要性。通过配置Hibernate的ThreadLocal实现本地线程对象,确保每次使用getCurrentSession()方法获取的Session为同一对象,简化了Session的管理和事务操作。
339

被折叠的 条评论
为什么被折叠?



