【发布时间】:2013-06-08 23:18:35
【问题描述】:
我正在尝试使用这样的事务模式为我的数据库模型编写 DAO,
Session session = null;
Transaction tx = null;
try{
session = HibernateUtil.getSessionFactory().openSession();
tx = session.beginTransaction();
tx.setTimeout(5);
//doSomething(session);
tx.commit();
}catch(RuntimeException e){
try{
tx.rollback();
}catch(RuntimeException rbe){
log.error("Couldn’t roll back transaction", rbe);
}
throw e;
}finally{
if(session!=null){
session.close();
}
}
用
将这种模式封装在一个方法中的好方法是什么? //doSomething(session);
作为交易的一部分执行的参数?有时我会运行查询,有时我会在session.saveOrUpdate 上操作,等等。我有很多 DAO 需要编写,这种代码重复模式让我很困扰。
编辑
session 操作和 HQL(saveOrUpdate、delete 等)之间是否存在直接映射,所以我需要传递给此方法的只是一个查询?
感谢您的见解。
【问题讨论】:
标签: java mysql database hibernate transactions