日期:2014-05-18  浏览次数:20728 次

SSH事物配置
各位大哥帮忙看下以下这种写法能实现事物配置吗,谢谢各位了,框架是struts2 hibernate spring  ,部分代码如下


applicationContext.xml
<bean id="transactionManager" class=
"org.springframework.orm.hibernate3.HibernateTransactionManager"
p:sessionFactory-ref="sessionFactory"/>
<bean id="transactionInterceptor" class="org.springframework.transaction.interceptor.TransactionInterceptor">
<property name="transactionManager" ref="transactionManager" />
<property name="transactionAttributes">
<props>
<prop key="delete*">PROPAGATION_REQUIRED</prop>
<prop key="add*">PROPAGATION_REQUIRED</prop>
<prop key="update*">PROPAGATION_REQUIRED</prop>
<prop key="save*">PROPAGATION_REQUIRED</prop>
<prop key="find*">PROPAGATION_REQUIRED,readOnly</prop>
<prop key="query*">PROPAGATION_REQUIRED,readOnly</prop>
<prop key="get*">PROPAGATION_REQUIRED,readOnly</prop>
</props>
</property>
</bean>
<bean
class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
<property name="beanNames">
<list>
<value>*Service</value>
</list>
</property>
<property name="interceptorNames">
<value>transactionInterceptor</value>
</property>
</bean> 


包:com.xx.action.admin
包下的类:AboutAction.java下的方法想实现事务管理,方法如下
public String addToAbout(){
aboutService.add(about);
     aboutService.add( about);

}


配置文件里的*Service跟类里的aboutService有联系吗?目前测试是没有实现事务管理,第2次增加同样的一个对象的时候,抛出异常,但是第一次增加的已经写进了数据库,是不是还要写注解啥的?@Transactional 什么的?

------解决方案--------------------
当然了;
事务管理有两种:
1.注解:在方法事务方法前加上@Transactional 
2.xml配置:在xml中加上advice和aop配置。
------解决方案--------------------
你申明注解事务的配置了吗


 <context:annotation-config />

------解决方案--------------------
引用:
你申明注解事务的配置了吗


 <context:annotation-config />


发错了,

<tx:annotation-driven transaction-manager="transactionManager"/>

------解决方案--------------------
引用:
Quote: 引用:

Quote: 引用:

Quote: 引用:

http://www.blogjava.net/robbie/archive/2009/04/05/264003.html 
给个资料吧 
对于这个 我一般也是拿之前的来用 具体还没怎么去记 ···


就是第3种方法,不过我业务写在action层里  这样就不OK了?是不是还要写什么注解?

之前用第4种,业务写在service层里,是OK的

你的边界是设置的service
你在action里面写数据库操作
肯定拿不到啊
不推荐在action里面对数据库操作


哎   这公司框架就这样   看来要改改~    那我如果现在事务管理定位在ACTION层的话就OK吗?   我试试

理论上是这样