Spring整合Jbpm之事务疑惑

spring AOP事务配置代理处代码:
<property name="transactionAttributes">
<props>
<prop key="get*">PROPAGATION_REQUIRED,readOnly</prop>
<prop key="check*">PROPAGATION_REQUIRED,readOnly</prop>
<prop key="clone*">PROPAGATION_REQUIRED</prop>
<prop key="find*">PROPAGATION_REQUIRED,readOnly</prop>
<prop key="load*">PROPAGATION_REQUIRED,readOnly</prop>
<prop key="create*">PROPAGATION_REQUIRED</prop>
<prop key="save*">PROPAGATION_REQUIRED</prop>
<prop key="update*">PROPAGATION_REQUIRED</prop>
<prop key="add*">PROPAGATION_REQUIRED</prop>
<prop key="remove*">PROPAGATION_REQUIRED</prop>
<prop key="do*">PROPAGATION_REQUIRED</prop>
<prop key="search*">PROPAGATION_REQUIRED,readOnly</prop>
</props>
</property>

流程实例删除,JbpmManager里面定义deleteProcessInstance(long ProcessInstanceId)

Spring容器中的JbpmMagager
<bean id="jbpmManager" parent="baseTxService">
<property name="target">
<bean
class="com.changhong.jbpm.service.imp.JbpmManagerImp"/>
</property>
</bean>

对比发现JbpmManager中的delete方法不在spring事务管辖范围之类。
点击删除操作,后台不报错,但是并没有删除。

开始找半天也不知道从哪儿开始找错,后来突然想起manager层的方法delete*记忆中好像没有配置在spring事务中。
再想逻辑没错,可能就是事务没有commit。

据此分析原因(迷迷糊糊给自己找了个解释的原因,如下)
JbpmManager下面的删除流程实例操作是基于SpringMoudles框架之上的,Jbpm与Spring事务统一整合。当manager层调用的方法并非spring AOP定义范围之类时,也就是并不在spring所管理的事务范围之类时,Manager里面的操作即利用SpringMoudels对Jbpm系统表进行数据操作的动作都视为无效,即不提交。

以上是我大致的分析逻辑
然后修改manager层方法delete*改成remove*
OK!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值