spring事物回滚
xml文件:(部分省略):
<bean id="transactionInterceptor" class="org.springframework.transaction.interceptor.TransactionInterceptor">
<!-- 事务拦截器bean需要依赖注入一个事务管理器 -->
<property name="transactionManager" ref="txmanager"/>
<property name="transactionAttributes">
<!-- 下面定义事务传播属性-->
<props>
<prop key="find*,get*">PROPAGATION_REQUIRED,readOnly</prop>
<prop key="save*,update*,delete*">PROPAGATION_REQUIRED</prop>
</props>
</property>
</bean>
<!-- 定义BeanNameAutoProxyCreator-->
<bean class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
<!-- 指定对满足哪些bean name的bean自动生成业务代理 -->
<property name="beanNames">
<!-- 下面是所有需要自动创建事务代理的bean-->
<list>
<value>IOrderSerivce</value>
<!-- 此处可增加其他需要自动创建事务代理的bean-->
</list>
</property>
<!-- 下面定义BeanNameAutoProxyCreator所需的事务拦截器-->
<property name="interceptorNames">
<list>
<!-- 此处可增加其他新的Interceptor -->
<value>transactionInterceptor</value>
</list>
</property>
</bean>
java代码(部分省略):public class OrderSerivce {
public void saveOrder(Orders order){
ShopCart cart=(ShopCart)ActionContext.getContext().getSession().get("cart");
Collection<Product> products=cart.getHashMap().values();
Iterator<Product> it=products.iterator();
while(it.hasNext()){
Product p=it.next();
p.setNumber(p.getNumber()-p.getQuantity());
SpringConnFactory.getProductserivce().update(p);
}
Integer i= orderdao.saveOrder(order);
Iterator<Orderitem> items=order.getOrderitem().iterator();
while(items.hasNext()){
Orderitem item=items.next();
item.setOrderid(i);
SpringConnFactory.getOrderitemserivce().saveOrderitem(item);
}
}
我故意让这句Iterator<Product> it=products.iterator();出错,结果是Integer i= orderdao.saveOrder(order);操作执行了,听说spring只对部分异常回滚事务,那应该怎么让spring对所有的异常回滚,请高手指点