此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
楼主【autonomy】截止到2008-07-23 08:23:00的历史汇总数据(不包括此帖):
发帖的总数量:22 发帖的总分数:880 每贴平均分数:40
回帖的总数量:20 得分贴总数量:0 回帖的得分率:0%
结贴的总数量:15 结贴的总分数:540
无满意结贴数:7 无满意结贴分:280
未结的帖子数:7 未结的总分数:340
结贴的百分比:68.18 % 结分的百分比:61.36 %
无满意结贴率:46.67 % 无满意结分率:51.85 %
楼主加油
楼主【autonomy】截止到2008-07-23 08:23:00的历史汇总数据(不包括此帖):
发帖的总数量:22 发帖的总分数:880 每贴平均分数:40
回帖的总数量:20 得分贴总数量:0 回帖的得分率:0%
结贴的总数量:15 结贴的总分数:540
无满意结贴数:7 无满意结贴分:280
未结的帖子数:7 未结的总分数:340
结贴的百分比:68.18 % 结分的百分比:61.36 %
无满意结贴率:46.67 % 无满意结分率:51.85 %
楼主加油
解决方案 »
- 页面不能正常跳转到frameset下的子框架.
- java初学者的困惑,求高手帮助!
- 多个web项目结合,一次登录。
- ibatis insert新记录后用last_insert_id()获取主键不起作用
- 高手请帮忙 求一个抽签算法
- 用hibernate的WEB项目部署到TOMCAT问题
- 一个JAVA&J2EE交流群(MSN):[email protected]
- 怎样在JSP调用SERVLET的DOPOST()或DOGET()方法
- 服务端socket监控,求大牛!!
- spring的跳转路径问题
- 奇怪:tomcat重启导致乱码!!!100分求救!!!
- Hibernate取Session需要用单例吗?
就是说
如果你的Action分别调用Service的不同方法,每一次调用就是一次事务。
所以你的调用时进行了三次事务。
你应该把三次调用放在Service里面进行。然后Action一次调用Service的方法。这样是一次事务,如果三个调用有一个失败就会回滚。
操作放一块吧,因为数据操作都放到DAO里面了
比如某个业务要往两个表同时插入数据,如果其中一个出错,就回滚
那么这个事务肯定是在service层,你在dao层的事务表示你开启了两个完全独立的事务所以你要把事务建立在业务层,让业务层中的dao方法,都在一个事务中,只需要
stockService.addMethod(stock,storage,book);
然后在service中的addMethod方法中加入类似
stockDao.addStock(stock);
stockDao.addStorage(storage);
stockDao.addBook(book);
最后更改事务配制
expression="within(org.aloha.bookstore.service.impl..*)" />
下面是配置文件
<aop:config>
<aop:pointcut id="jdbcServiceMethod"
expression="within(org.aloha.bookstore.dao.impl..*)" />
<aop:advisor pointcut-ref="jdbcServiceMethod"
advice-ref="jdbcTxAdvice" />
</aop:config>
<tx:advice id="jdbcTxAdvice"
transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="add*" propagation="REQUIRED"/>
</tx:attributes>
</tx:advice>
action:
stockService.addStock(stock,storage,book);
service:
stockdao.addStock(stock,storage,book);
stockdao:public void addStock(Stock stock ,Storage storage,Book book) throws Exception {
Session session = null;
session = getSession();
session.save(stock);
session.save(storage);
session.save(book);
//session.flush();
session.close(); }
其中STOCKSERVICE和STOCKDAO分别实现接口ISTOCKSERVICE,ISTOCKDAO
<tx:method name="add*" propagation="REQUIRED"/>这里加了事务行为
我的SERVICE.IMP包名写错了(SERVICEIMPL)