用MyEclipse反向工程生成spring式的DAO。一次调用不同dao的方法,是否可以事务管理。例如以下代码,
如果dao1删除不成功,则dao保存操作回滚。
- Java code
ApplicationContext context = ScheduleListener.context;WaitstationdefDAO dao = (WaitstationdefDAO) context.getBean("WaitstationdefDAO"); dao.attachDirty(waitStation);SellagentdefDAO dao1 = (SellagentdefDAO) context.getBean("SellagentdefDAO"); Sellagentdef sellAgent = dao1.findById(id); if(sellAgent==null){ }else{ dao1.delete(sellAgent); }
------解决方案--------------------
你在哪个方法里面调两个dao,就在哪个方法上面声明事务。没问题的。
------解决方案--------------------
一般还会采取一个service层,用于对多个DAO的操作,事物就加在service层
------解决方案--------------------
只要把你想回滚的操作放在一个事务里就好了。
才不管你一个事务里有多少次db操作呢。。。
------解决方案--------------------
业务层做事务:方法前加@Transactional(rollbackFor = Exception.class)
前提DAO层做一个抛出异常
配置文件设置下