弹簧小豆2.0春季Webflow的持久性的最佳实践

问题描述 投票:0回答:1

我有与Spring Roo的2.0.0.RC2网络流量持续一个实体的烦恼。

与小豆2.0,我已经产生其应在的Webflow的端注册用户的应用程序。

这里是我的袋鼠命令:

    entity jpa --class ~.model.AppUser --serializable 
    field string --fieldName username --notNull
    web flow --flowName registrationProcess --class ~.RegistrationProcessFormBean`

这是我的flow.xml:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<flow xmlns="http://www.springframework.org/schema/webflow" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" start-state="create-appuser" xsi:schemaLocation="http://www.springframework.org/schema/webflow                           http://www.springframework.org/schema/webflow/spring-webflow-2.4.xsd">

    <persistence-context />

    <on-start>
        <set name="flowScope.registrationProcessFormBean" value="new de.xx.www.training.RegistrationProcessFormBean()"/>
        <set name="flowScope.appUser" value="new de.xx.www.training.model.AppUser()"/>
    </on-start>
    
    <view-state id="create-appuser" model="appUser" view="registrationprocess/create-appuser">
    	<transition on="success" to="end-state" />
    </view-state> 

    <end-state id="end-state" view="registrationprocess/end-state" commit="true"/>
	
</flow>

注:我知道,这是更好地使用DTO,而不是一个实体。目前,我只是试图找到一个简单的方法来持久化实体APPUSER。

我的问题:

  1. 如何坚持实体?是否有可能使用生成的库,例如AppUserRepository? (这不是序列化。)
  2. 如果需要的话,如何在小豆2.0配置HibernateFlowExecutionListener在flowRegistry?

请指教。提前致谢!

Update 02/05/2019

我的建议。

<on-start>
<set name="flowScope.appUser" value="new de.test.model.AppUser()"/>

</on-start>
<!-- A sample view state -->
<view-state id="view-state-1" model="appUser" view="registrationprocess/view-state-1">
    <transition on="success" to="view-state-2">
    <evaluate expression="appUserServiceImpl.save(appUser)" result="flowScope.appUser" />
</transition>
</view-state>

Result:

org.springframework.expression.spel.SpelEvaluationException: EL1004E:(pos 19): Method call: Method save(de.test.model.AppUser) cannot be found on de.test.service.impl.AppUserServiceImpl$$EnhancerBySpringCGLIB$$10b2028b type

我究竟做错了什么?

该方法存在。

public class AppUserServiceImpl implements AppUserService {

 public AppUser save(AppUser entity) {
    return getAppUserRepository().save(entity);
}

感谢您一些提示。

Update 02/06/2019

由于周围的工作,我禁用了pom.xml的弹簧引导devtools(见https://github.com/spring-projects/spring-boot/issues/7912)。

java spring spring-roo spring-webflow-2
1个回答
0
投票

首先定义你的实体和生成资源库和服务层:

entity jpa --class ~.model.MyBean --serializable
repository jpa --all --package ~.repository
service --all --apiPackage ~.service.api --implPackage ~.service.impl

现在,你的服务的bean(myBeanServiceImpl)是在上下文中可用。

你可以用它来保存你的实体在你的流程如下:

<view-state id="view-state-1" view="gocluster/view-state-1" model="basics">
    <transition on="success" to="view-state-2">
      <evaluate expression="myBeanServiceImpl.save(basics)" result="flowScope.someObjectData" />
    </transition>
</view-state>
© www.soinside.com 2019 - 2024. All rights reserved.