spring声明事务管理之细节session.getCurrentSession()

本文详细解析了在Spring事务管理中,如何正确使用Hibernate会话以避免常见错误,通过实例演示了sessionFactory.openSession()与getCurrentSession()的区别,并强调了正确绑定session的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第一:在Spring @Transactional声明式事务管理的配置中,hibernate.current_session_context_class=thread…

这一句是不能加的…加了就会出错..那为什么不能加呢?

那是因为在Spring事务管理中,current Session是绑定到SpringSessionContext中的,而不是ThreadLocalSessionContext中的

 

参考http://blog.youkuaiyun.com/irelandken/article/details/7193123

第二:要注意

public void saveCategory(Category category)  {  

    //hibernateTemplate.save(category);   

    Session session = sessionFactory.openSession();//.getCurrentSession();   

    session.save(category);  

}  

事物会不起作用,原因:sessionFactory.openSession(),另外开辟了一个session,而不是使用当前session

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值