Hibernate自动生成的DAO的修改方法

使用MyEclipse中用Hibernate反向工程生成的DAO会发生对象无法存储到数据库的现象,原因是没有运用事务。当然可以在调用dao对象的代码前后加事务控制,但这样破坏了dao对数据库操作的

封装,让业务层中掺杂了持久层代码。所以进行以下修改:

 

修改后:

 

import org.hibernate.Session; import org.hibernate.Transaction; 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 delete(Resource persistentInstance) { log.debug("deleting Resource instance"); try { Session session = getSession(); Transaction tr = session.beginTransaction(); session.delete(persistentInstance); tr.commit(); session.flush(); log.debug("delete successful"); } catch (RuntimeException re) { log.error("delete failed", re); throw re; } }

你可能感兴趣的:(DAO,Hibernate,数据库,MyEclipse,session,delete)