public void testSave()
{
Transaction tc=null;
tc = session.beginTransaction(); //1
try {
User user = new User();
user.setName("张三");
user.setBirthday(new Date());
user.setPassword("123");
session.save(user);
session.flush();//这句执行结束就发出Insert 语句.
User user2 = new User();
user2.setName("张三");
user2.setBirthday(new Date());
user2.setPassword("123");
session.save(user2);
//tc = session.beginTransaction(); //2
throw new RuntimeException();
// tc.commit();
}catch(Exception e) {
tc.rollback();
e.printStackTrace();
}
//tc.commit();
}
session.beginTransaction()的正确写法是在 "//1"
在"//2"处导致的问题是,异常数据依然会提交,因为tc.rollback()中的tc为null,起不到回滚的作用了,切记、切记。。。。。