spring 事物代理不生效请教原因
下面是我的spring配置(只贴出了重要部分):
<tx:advice id="adviceJ" transaction-manager="transactionManagerJ">
<tx:attributes>
<tx:method name="*" propagation="REQUIRED" />
</tx:attributes>
</tx:advice>
<tx:advice id="adviceH" transaction-manager="transactionManagerH">
<tx:attributes>
<tx:method name="*" propagation="REQUIRED" />
</tx:attributes>
</tx:advice>
<!-- 事务管理器 -->
<bean id="transactionManagerJ"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource">
<ref bean="dataSource" />
</property>
</bean>
<bean id="transactionManagerH"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
以下是我的java代码:
public String addBaseLine(KpiDynamicLineData lineDO) throws Exception {
// 添加基线配置
KpiDynamicLineData kdl = kpiDynamicLineBusiness.addBaseLine(lineDO);
// 清除之前的冗余数据
boolean flag = kpiDynamicLineKbpBusiness.delBaseLineKbpByDBLId(kdl
.getOID());
if (flag) {
// 开始添加新的资源与指标关系
for (int i = 0; i < kdl.getDblResId().length; i++) {
KpiDynamicLineKbpData kbpData = new KpiDynamicLineKbpData();
kbpData.setDblId(kdl.getOID());
kbpData.setKpiId(kdl.getDblKpiId());
kbpData.setResId(dimSearchSO.getSearchCodeById((kdl
.getDblResId())[i].toString()));
String result = kpiDynamicLineKbpBusiness
.addBaseLineKbp(kbpData);
if (!"1001".equals(result)) {
throw new Exception(result);
}
}
}
return "";
}
当在String result = kpiDynamicLineKbpBusiness.addBaseLineKbp(kbpData);
的时候接受到的值不是 1001的时候手动抛出异常,但是“添加基线配置”的事物还是被提交了 这事为什么呢?