spring问题.....声明式事务不能回滚
妖精的舌头 2007-10-07 06:10:38 各位:
我用TransactionProxyFactoryBean给类添加事务时.它插入数据出错时可以回滚,但当我设定不同的TransactionInterceptor来进行事务管理时,出错了它不回滚,这是怎么回事,急切请教
以下是部分代码和文件配置
applicationContext.xml:
<bean id="transactionInterceptor" name="tit"
class="org.springframework.transaction.interceptor.TransactionInterceptor"
abstract="false" lazy-init="default" autowire="default"
dependency-check="default">
<property name="transactionManager">
<ref bean="transactionM" />
</property>
<property name="transactionAttributeSources">
<list>
<value>com.userDAO.inserM=PROPAGATION_REQUIRED</value>
</list>
</property>
</bean>
<bean id="usertrProxy" name="utrp"
class="org.springframework.aop.framework.ProxyFactoryBean"
abstract="false" lazy-init="default" autowire="default"
dependency-check="default">
<property name="proxyInterfaces">
<value>com.IUserADO</value>
</property>
<property name="target">
<ref bean="userdao" />
</property>
<property name="interceptorNames">
<list>
<value>transactionInterceptor</value>
</list>
</property>
</bean>
以下是类(IUserADO.class)里定义的需要帮定事务的方法:
public void inserM(User user)
{
// TODO Auto-generated method stub
jt.update("insert into usermsg (name,sex) values(?,?)",
new Object[]{user.getName(),user.getSex()});
jt.update("inser into usermsg (name,sex) values('qqqqq',80)");
// 注意:第二条语句是错误的,inser少个t,按道理说是会回滚的,就是连第一条也不应该执行,但它却执行了第一条,这不对,请教高手.......
}