spring 注解配置,不生效,不能回滚? 请大神指导

spring 注解配置,不生效,不能回滚? 请大神指点!
配置文件       

<!-- jdbc事务管理器 -->  
        <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">  
            <property name="dataSource" ref="dataSource" />  
        </bean>  
        
   <tx:annotation-driven transaction-manager="transactionManager"/>  


import java.util.List;
import java.util.Map;
import javax.annotation.Resource;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;

import com.jsaisino.sn.zsy.dao.SaveZDao;
import com.microsoft.sqlserver.jdbc.SQLServerException;

@Transactional
@Component("zservice")
public class ZService {
@Resource(name="savezdao")
private  SaveZDao  savezdao;
@Transactional(rollbackFor={Exception.class,RuntimeException.class,SQLServerException.class})
public String save(String SOLD_NUMBER, Map map_M ,List<Map<String,Object>> mapListJson) throws Exception{


try {
for (int i = 0; i < mapListJson.size(); i++) {
Map<String,Object> obj= mapListJson.get(i);
obj.put("SOLD_NUMBER", SOLD_NUMBER);
if(obj.get("is_zkh").equals("0")){                             //不是折扣行 (子表数据保存)
savezdao.saveDetil(obj);
}else{ //是折扣行   (子表数据保存)
savezdao.saveRebateDetil(obj);
}
}
savezdao.saveHMain(map_M);   //(主表保存)

} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();

throw new Exception("运行时出错!"); 
}

return backflg;
}
}


为什么我这地方不能进行回滚, 子表,正常保存,主表保存出现异常,但是后天数据库,子表数据没有回滚。是不是我写的有问题?
------解决思路----------------------
spring 注解配置,不生效,不能回滚? 请大神指导
第一:你使用的事默认的事务传播级别,即遇到运行时异常才回滚。
第二:如果你的主表保存发生异常,此时异常为运行时异常。
第三:你人为捕获了异常,注意,你捕获的事运行时异常,然后抛出了一个Exception,此时根据你设定的事务传播机制(只有运行时异常才回滚),Exception是不会回滚的
------解决思路----------------------
.......上面说的我是不认同的,添加了rollbackFor={Exception.class}就可以在我们自己捕获到异常的时候进行回滚!

建议:

1.把@Component("zservice")换成@Service试一下!

2.请确认一下下面的方法有没有单独的事务!
savezdao.saveDetil(obj);
savezdao.saveRebateDetil(obj);
savezdao.saveHMain(map_M);   //(主表保存)