Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.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
Java 如何实施";请稍后完成”;具有非空字段的函数性?_Java_Spring_Hibernate_Jakarta Ee - Fatal编程技术网

Java 如何实施";请稍后完成”;具有非空字段的函数性?

Java 如何实施";请稍后完成”;具有非空字段的函数性?,java,spring,hibernate,jakarta-ee,Java,Spring,Hibernate,Jakarta Ee,环境 Spring/hibernate/MySQL web应用程序 问题 我有一个多步骤表单,应该可以在每个步骤保存,以便以后完成。但不完整的步骤可能包含模型所需的字段,因此无法保存模型 我尝试过或想尝试的内容 使字段为空 使用临时表保存未完成的表单 但是.. 解决方案1会中断数据库设计,解决方案2会用片段填充我的代码,以便在临时模型和永久模型之间进行转换,如果我在保存表单后添加编辑表单的功能,这将变得很糟糕 如何以无缝和优雅的方式实现complete later功能?另一个选项是在数据库表中有

环境
Spring/hibernate/MySQL web应用程序

问题
我有一个多步骤表单,应该可以在每个步骤保存,以便以后完成。但不完整的步骤可能包含模型所需的字段,因此无法保存模型

我尝试过或想尝试的内容

  • 使字段为空
  • 使用临时表保存未完成的表单
  • 但是..
    解决方案1会中断数据库设计,解决方案2会用片段填充我的代码,以便在临时模型和永久模型之间进行转换,如果我在保存表单后添加编辑表单的功能,这将变得很糟糕


    如何以无缝和优雅的方式实现complete later功能?

    另一个选项是在数据库表中有一个
    布尔
    complete\u edit
    。对于在保存过程中未首先输入的列,存储默认值或类似“not_COMPLETE”的字符串,并将
    COMPLETE\u edit
    列设置为false。只有在提交时,此列才应为真

    FWIW,我强烈反对临时表保存不完整的表单。我们在当前的应用程序中有一个类似的设置(在多个步骤中准备发票,可以跨越不同的用户会话),这会带来可维护性问题以及对临时表和永久表的不一致修改


    我们正朝着带有鉴别器状态列的单表方法发展,该列将对这些进行中的发票进行分类,以便在状态翻转之前,后续工作流步骤不会拾取这些发票。

    我推荐解决方案2:临时表:因为它清楚地区分了您的域模型(正常表)还有一些GUI的东西,比如持久的wizzard

    如果您不分离,那么您需要在程序中的任何地方进行检查,因为数据是域模型数据或gui数据(在每件事情完成后将成为域数据)