Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring 如何在Mule中为具有多个子流的单个流执行事务管理_Spring_Hibernate_Mule - Fatal编程技术网

Spring 如何在Mule中为具有多个子流的单个流执行事务管理

Spring 如何在Mule中为具有多个子流的单个流执行事务管理,spring,hibernate,mule,Spring,Hibernate,Mule,我有以下场景,其中fdcasterflows1Flow1和fdcasterflows1Flow2将在spring hibernate中进行数据库操作,并且应该基于几个参数进行提交或回滚,我必须在DBCommitRollBack类中执行,并且fdcasterflows1Flow1和fdcasterflows1Flow2应该获得相同的数据库连接,如何在mule中实现这一点 <flow name="DetailsFlow2" doc:name="DetailsFlow2"> <flo

我有以下场景,其中fdcasterflows1Flow1和fdcasterflows1Flow2将在spring hibernate中进行数据库操作,并且应该基于几个参数进行提交或回滚,我必须在DBCommitRollBack类中执行,并且fdcasterflows1Flow1和fdcasterflows1Flow2应该获得相同的数据库连接,如何在mule中实现这一点

<flow name="DetailsFlow2" doc:name="DetailsFlow2">
<flow-ref name="fdcasterflows1Flow1" doc:name="Flow Reference1"/>   
<flow-ref name="fdcasterflows2Flow2" doc:name="Flow Reference2"/>              
<component class="com.DBCommitRollBack" doc:name="Java"/>
 </flow>
 <sub-flow name="fdcasterflows1Flow1" doc:name="fdcasterflows1Flow1">
 <component class="com.GetDetails" doc:name="Java"/>
 </sub-flow>
 <sub-flow name="fdcasterflows1Flow2" doc:name="fdcasterflows1Flow1">
 <component class="com.FetchDetails" doc:name="Java"/>
 </sub-flow>


顺便说一句,我正在使用SpringDAO层提供的HibernateDAOSupport,请看一下数据库连接器文档,尤其是关于事务的文档


如果您使用的是企业版,我建议您使用“事务范围”

根据Mulesoft的文件:

如果要将事务应用于流中的元素,而不是以配置为事务的入站连接器开头,则将事务作为包装应用(在Studio中称为作用域)


您可以将几个参数返回给Mule,然后选择继续或抛出异常(从而停止事务)。

您提出这个问题的事实意味着您已经在使用Mule执行错误的任务。如果您使用的是DAO,这意味着您背后有一个db结构,为什么不直接使用spring来创建REST业务API?不,我们必须使用Mule框架,因为我们有各种连接器,如HTTP、文件等,有没有执行事务管理的方法?这可能会有所帮助,但不是一个答案。请参阅。您是否可以在回答中引用文档的相关部分?堆栈溢出希望答案是“自包含的”。完成-我已经编辑了上面的答案。谢谢你的指点。太好了,谢谢。顺便说一句,你可以保留到完整文档的链接-答案允许有外部链接,只要它没有外部链接就可以了。例如,我需要如下控制我的事务,使用PlatformTransactionManager,在流的顶层某处使用beginTransaction,并在流的末尾提交/回滚?你能举个例子吗?只是想问一下,为什么你需要使用PlatformTransactionManager?如果您使用的是Mule,则应尽可能使用其内置工具集。事务作用域将允许您在事务中包装任何您想要的内容。至于提供一个使用Spring的示例,我对Spring不太熟悉(我来自C#world),而且我的工作场所不允许我提供示例代码,所以很遗憾我不能这样做。