spring事物 请求指点

dream1210 2010-12-30 09:17:22
小弟现在用的是spring mvc + hibernate
使用open session in view
下面是配置spring bean的部分代码
<bean id="bidNoticeManagerImpl"
class="cn.bidlink.procurement.bid.service.impl.BidNoticeManagerImpl" autowire="byName">
<property name="bidNoticeDao"><ref bean="bidNoticeDao"/></property>
</bean>

<bean id="bidProjectManager" parent="txProxyTemplate">
<property name="target"><ref bean="bidProjectManagerImpl"/></property>
<property name="transactionAttributes">
<props>
<prop key="create*">PROPAGATION_REQUIRED</prop>
<prop key="*">PROPAGATION_REQUIRED</prop>
</props>
</property>
<property name="proxyInterfaces">
<value>cn.bidlink.procurement.bid.service.IBidProjectManager</value>
</property>
</bean>

想请教一下
1.在一个action中 注入多个manager,他们使用的是一个事物 还是多个事物?
2.如果action,调用aManager,aManager中注入bManager,调用bManager时使用的是aManager的事物,还是bManager创建一个新事物.
3.现在在上面1的情况下,如果aManage提交成功,bManage提交出现异常.aManager事物不会回滚,请问有什么好的方式解决么?
希望兄弟们给我解惑. 给点资料. 谢谢
...全文
95 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
1.在一个action中 注入多个manager,他们使用的是一个事物 还是多个事物?

应该是多个事务;

2.如果action,调用aManager,aManager中注入bManager,调用bManager时使用的是aManager的事物,还是bManager创建一个新事物.

每个manager使用自己的事务;

3.现在在上面1的情况下,如果aManage提交成功,bManage提交出现异常.aManager事物不会回滚,请问有什么好的方式解决么?

在manager调用其它manager的时候,做好excetion的管理,如果bM出现异常,直接将aM回滚。
dream1210 2010-12-30
  • 打赏
  • 举报
回复
感谢楼上回答.
但是框架是已经定义好的,没有使用springside. 是老的一个接口一个实现类那种.
三层action->manager->dao
代码规范:举个例子: 现有用户User,和角色Role
他们定义了各自的manager,来实现一些接口 供其他业务调用
UserAction 中,注入userManager和roleManager 而不是吧roleManager的业务放在userManager中实现.
所以一个action中注入多个manager很正常.
自己找了些资料 没看明白 所以来请教各路大侠.
米土木木 2010-12-30
  • 打赏
  • 举报
回复
Spring可以自动提交事物的,干吗还注入多个manager啊

直接这样不行啦,不要全部复制,看自己的项目做一点修改

<!-- 事物 -->
<bean id="transactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager"
parent="baseDao">
</bean>

<tx:advice id="mytx" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="*" />
</tx:attributes>
</tx:advice>

<!-- 织入 -->
<aop:config>
<aop:advisor advice-ref="mytx"
pointcut="execution(* com.iservice.*.*(..))" />
</aop:config>
dream1210 2010-12-30
  • 打赏
  • 举报
回复
各位大大 能不能 说的详细点.
goodsun00 2010-12-30
  • 打赏
  • 举报
回复
第三个 问题 localThread 隔离事物 独自执行

dream1210 2010-12-30
  • 打赏
  • 举报
回复
感谢xiaoniqiu
能给第三个问题 举个小例子么? 谢谢
dream1210 2010-12-30
  • 打赏
  • 举报
回复
无人问津啊
路过的兄弟们 帮帮忙 给点资料也行啊
谢谢

67,549

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧