下面的代码是否正常工作,或者我需要在开始工作之前开始交易。
Session session = SessionFactory.openSession();
//do some work like session.save/Update
finally{
session.beginTransaction().commit();
}
答案 0 :(得分:4)
没有。当然,作为事务一部分的代码必须在事务的开始和提交之间。
这里({3}}说的是:
会话/事务处理习惯用法如下所示:
// Non-managed environment idiom
Session sess = factory.openSession();
Transaction tx = null;
try {
tx = sess.beginTransaction();
// do some work
...
tx.commit();
}
catch (RuntimeException e) {
if (tx != null) tx.rollback();
throw e; // or display error message
}
finally {
sess.close();
}
答案 1 :(得分:0)
不需要管理事务,提交立即生效,Hibernate抛出的任何异常都是致命的,你必须回滚事务并关闭当前会话。