冰云 2011-11-16
在使用MyEclipse过程中,用Hibernate反向工程生成的DAO有时会发生对象无法存储到数据库,或对象修改后无法存储到数据库的现象。原因是没有运用事务,可以在调用dao对象的代码前后加事务控制,但这样破坏了dao对数据库操作的 例如:
public void save(Resource transientInstance) { log.debug("saving Resource instance"); try { Session session = getSession(); Transaction tr = session.beginTransaction(); //开始事务 session.save(transientInstance); tr.commit(); //提交事务 session.flush(); //清空缓存 log.debug("save successful"); } catch (RuntimeException re) { log.error("save failed", re); throw re; } } public void update(Exam instance) { log.debug("attaching update Exam instance"); try { Session session = getSession(); Transaction tr = session.beginTransaction(); //开始事务 session.update(instance); tr.commit(); //提交事务 session.flush(); log.debug("attachUpdate successful"); } catch (RuntimeException re) { log.error("attachUpdate failed", re); throw re; } }封装,让业务层中掺杂了持久层代码。