【发布时间】:2021-11-07 13:23:48
【问题描述】:
对于我的“学校管理项目”,我使用 Spring Boot REST、hibernate Data JPA 和 MySQL 作为数据库。
我有一个学生类,它有 5 个属性。
我想实现一个功能,允许管理员从 UI 向 Student 类添加更多属性,并且该属性将是固定数据类型(字符串、布尔值、整数、浮点数、双精度)。
这是因为我们无法事先预测所有 Student 属性。因此,用户将看到一个页面,如果他可以添加属性名称、其数据类型以及他想要添加属性的类。
下次任何用户创建新的学生条目时,他将看到管理员为学生添加的新属性以及 POJO 的默认属性。
hibernate 将如何创建具有来自 POJO Student 类的属性以及来自我们稍后添加的 DB 的自定义属性的 DTO? 还有如何使用所有 POJO 和自定义属性保存 Student DTO?
看了之后才知道这种方式叫做EAV 'Entity Attribute Value'
但在网上没有找到任何例子
更新 1: 找到了这个关于如何为 EAV 模型设计 DB 的视频,我认为它是可行的,并且可能会朝这个方向发展。不确定这种方法的 JAVA 实现。 EAV Zero to EAV Hero
这里有一些我找到的链接,但我仍然不明白这一点
How to store data with dynamic number of attributes in a database
【问题讨论】:
-
这能回答你的问题吗? JPA 2 Custom Entity Fields
-
我得到了这个问题作为参考,但仍然很难掌握。 JPA 2 custom entity fields
-
找到了这个关于如何为 EAV 模型设计数据库的视频,我发现它是可行的,并且可能会朝这个方向发展。不确定这种方法的 JAVA 实现。 EAV Zero to EAV Hero
标签: java spring spring-boot hibernate entity-attribute-value