2008-12-17 40 views
0

我和我的团队正在使用Spring 2.5.6和Spring Webflow 2.0(JDK 1.4.2)启动一个项目。我们现在处于设计阶段,我想知道Spring的持久化上下文/实体管理器(我们将使用Hibernate)是否可以通过子流提交。Spring Webflow 2.0的实体管理器可以从子流状态提交吗?

commit属性只能在最终状态下使用。所以,如果我们有这样的流程:

<flow> 
<persistence-context /> 
<!-- Do some things --> 
<!-- Call a subflow. This hopefully will commit stuff. --> 
<subflow-state id="foo"> 
</subflow-state> 
<!-- Do some more things --> 
<end-state id="theEnd" commit="true" /> 
</flow> 

<!-- The Subflow --> 
<flow> 
<persistence-context /> 
<!-- Do some things --> 
<!-- Do some more things --> 
<end-state id="theEnd" commit="true" /> 
</flow> 

愿我们的子流程,以便能够提交其步骤父流程的完整执行之前。希望它可以。

子流是否能够提交?或者Webflow会禁止这一点,只让真正的父流使用它的实体管理器/持久性上下文来提交数据库?

回答

0

好的,答案是肯定的,不是。子流实际上被分配了一个不同于它的父节点的持久化上下文,并且它可以使用该持久化上下文来提交,但是如果使用的技术是Hibernate,那么在发出提交结束状态之前,对象必须被附加到它的会话中。