Hibernate反向工程导致的数据无法存储
在使用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;}} ?封装,让业务层中掺杂了持久层代码。