想看看spring到底是怎么来对hibernate进行事务管理的,首先看看hibernate对于事务是如何处理的。
通常,hibernate处理事务的过程如下
Session session = sf.openSession();
Transaction transaction = session.beginTransaction();
User user = new User();
try
{
session.save(user);
transaction.commit();
}
catch (Exception e)
{
transaction.rollback();
}
finally
{
if (session.isOpen())
{
session.close();
}
}
即
1 获取session
2 开始事务
3 执行具体的操作
4 根据操作结果来决定是commit还是rollback
后面会一步步跟踪spring是如何完成这些步骤的