您的位置:程序门 -> java -> j2ee / ejb / jms



我配置了一个测试spring事务配置,但是不能回滚。那位高手帮我看看其中的问题 


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


我配置了一个测试spring事务配置,但是不能回滚。那位高手帮我看看其中的问题
发表于:2007-12-26 09:09:24 楼主
类   1  
public   class   functiondao   extends   jdbcdaosupport   {  
public   set <t>   add(integer   adminid)   {  
system.out.println("test");  
jdbctemplate   template   =   this.getjdbctemplate();  
template.update("insert   into   func(func_id,func_11)   values(1,1)");  

return   null;  
}

}

类   2  
public   class   userdao   extends   jdbcdaosupport   {

public   void   update(string   account,   string   psw)   {  
jdbctemplate   template   =   this.getjdbctemplate();  
template.update("update   administrators   set   admin_passwords=111111");  
return   admin;  
}

}

类3  
public   class   userboimpl{  
private   userdao   userdao;  
private   functiondao   functiondao;  
public   functiondao   getfunctiondao()   {  
return   functiondao;  
}  
public   void   setfunctiondao(functiondao   functiondao)   {  
this.functiondao   =   functiondao;  
}  
public   userdao   getuserdao()   {  
return   userdao;  
}  
public   void   setuserdao(userdao   userdao)   {  
this.userdao   =   userdao;  
}

public   void   test(string   account,   string   psw)   {  
userdao.update(account,   psw);

functiondao.add(admin.getid()));  
}  
}

配置是

<!--   transaction   manager   for   a   single   jdbc   datasource   -->  
<bean   id="transactionmanager"   class="org.springframework.jdbc.datasource.datasourcetransactionmanager">  
<property   name="datasource"   ref="telecomds"/>  
</bean>  
<bean   id="userdao"   class="test.userdao">  
<property   name="datasource"   ref="telecomds"/>  
</bean>  
<bean   id="functiondao"   class="test.functiondao">  
<property   name="datasource"   ref="telecomds"/>  
</bean>  


<bean   id="userbo"   class="test.userboimpl">  
<property   name="userdao"   ref="userdao"/>  
<property   name="functiondao"   ref="functiondao"/>  
</bean>  

<!--   事务管理配置   -->  
<bean   id="userboproxy"   class="org.springframework.transaction.interceptor.transactionproxyfactorybean">  
<property   name="transactionmanager"   ref="transactionmanager"/>  
<property   name="target"   ref="userbo"/>  
<property   name="transactionattributes">  
<props>  
<prop   key="add*"> propagation_required,-exception </prop>  
<prop   key="update*"> propagation_required,-exception </prop>  
</props>  
</property>  
</bean>  

我这里想要实现的是,如果有一个数据曾操作出问题,就回滚。现在这样的配置我测试了,不能实现。  
那位能帮我说说其中的问题  

发表于:2007-12-26 11:29:391楼 得分:0
上面的方法里的return是没有的,多写上去了
发表于:2007-12-26 11:30:322楼 得分:0
....
你的代理对象(target)是userbo(即test.userboimpl)
要添加事务的方法是userbo中所有以add开头和以update开头的方法。
你自己看看你userbo中的方法名是什么?
getfunctiondao()       setfunctiondao(functiondao       functiondao)  
setuserdao()       setuserdao(userdao       userdao)  
test(string       account,       string       psw)

哪里有update*或者add*?
发表于:2008-01-08 21:31:193楼 得分:0
我猜楼主可能是将dao封装在一个**service类中
这个类中的add**,update**方法调用了dao吧
配置中少了你的   **service类,如果配置的正确应该能在事务失败的情况下回滚的


快速检索

最新资讯
热门点击