Java 为数据库建模-spring+hibernate-加载文档模板并保存其数据

Java 为数据库建模-spring+hibernate-加载文档模板并保存其数据,java,mysql,spring,hibernate,data-modeling,Java,Mysql,Spring,Hibernate,Data Modeling,我在建模数据库并将其与业务逻辑链接时遇到了一个问题。我已经做了多年的前端开发人员,但我有一个想法,我想开发,我需要掸掉我的后端技能 这就是我想要实现的目标: 用户将选择为完成给定作业而必须完成的预设文档。 然后将提示用户填写文档列表。 每个文档都是给定类型的,需要从模板开始,例如不同的收件人或标题、结构、颜色等。 打开每个文档时,都会要求提供需要填写的信息,并且其数据必须保存在数据库中。 每个文档基本上都是一个.docx文件,应该可以保存为PDF格式。 允许用户从可用模板列表中添加新文件。 开发

我在建模数据库并将其与业务逻辑链接时遇到了一个问题。我已经做了多年的前端开发人员,但我有一个想法,我想开发,我需要掸掉我的后端技能

这就是我想要实现的目标: 用户将选择为完成给定作业而必须完成的预设文档。 然后将提示用户填写文档列表。 每个文档都是给定类型的,需要从模板开始,例如不同的收件人或标题、结构、颜色等。 打开每个文档时,都会要求提供需要填写的信息,并且其数据必须保存在数据库中。 每个文档基本上都是一个.docx文件,应该可以保存为PDF格式。 允许用户从可用模板列表中添加新文件。 开发堆栈: 由于最终用户的限制,Java 8 春天 冬眠 H2用于测试-MySQL正在生产中 然而,vue.js或我心目中的前端不是重点 后端和前端之间的对话将基于REST服务 docx和pdf是使用Docx4j创建的 我尝试的是: 前提:预设->事件

事件将是给定的事件类型,并将包含已创建文档的列表

EventType将知道要向用户显示的模板列表

在事件中,将创建每个文档,其基本结构链接到模板

文档包含表示用户输入的文档数据的映射

从这里开始,你可以看到我不太相信如何做到这一点

我认为只要文档正确完成(如每个模板中指定的),事件就可以处理。它将有一个列表,并遍历它,它将询问每个文档是否已完成。 每个文档都会要求模板提供一个即将填写的参数列表,当事件要求时,会将该列表传递给模板,模板将检查该列表是否已完成。 是负责处理真实MS word对象的模板。它很可能是一种工厂,包含文档使用的默认方法,例如generateDocx,它将返回完成的.docx文件以呈现给用户

因此,用java翻译,模板将是一个扩展类的集合,如TypeOneTemplate、TypeTwoTemplate等,使用静态方法,每个类都知道如何对给定的参数集进行分页

文档将包含对其指定类型工厂的引用,以及将以多种方式保存的参数列表,这些参数将链接文档表和DocumentData表

现在的问题是,如何将模板保存到数据库中?我可以在数据库中存储将其名称或ID映射到表示类的字符串的模板列表,例如:

+---------------+----------------+-----------------------+
|  TEMPLATE_ID  |      NAME      |         CLASS         |
+---------------+----------------+-----------------------+
|       1       |     default    | DefaultTemplate.class |
+---------------+----------------+-----------------------+
但我觉得这听起来并不正确,因为这样一来,数据库严格依赖于java实现。 你能告诉我你对我正在做什么的看法吗

问:为什么不首先使用微软Word的模板?答:这是TLDR;我必须实现的版本,具有扩展功能,如在文档之间共享数据、在多个用户之间并发编辑等。我确信MS Word不如结构化java应用程序好,即使它是由像我这样愚蠢的人构建的。 问:为什么不将word模板文件保存在db中?A:斑点?呃,这是我最后的机会了,如果我真的要这么做的话。但我宁愿避免这样的情况,因为我在前面的回答中说过,而且Docx4j库对于basic.docx来说已经非常重要,使用模板将是一场噩梦。 问:为什么在StackOverfo谈论软件工程?答:是的,这是我最后一句话的重点,当时感觉太依赖于业务逻辑了

我希望这个问题的质量是好的