【问题标题】:EAV: Adding Attributes dynamically to a JAVA Class in Spring Boot HibernateEAV:在 Spring Boot Hibernate 中向 JAVA 类动态添加属性
【发布时间】: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

EAV is it really bad in all scenarios

【问题讨论】:

标签: java spring spring-boot hibernate entity-attribute-value


【解决方案1】:

尝试通过创建包含用户、管理员等角色的角色,然后创建另一个表作为用户角色,并使用您的角色表的角色和用户表的用户 ID 在您的 sql 表中添加角色。 使用 pojo 类。

【讨论】:

  • 有点混乱,您能否详细说明此解决方案将如何帮助我在数据库中保存自定义属性,然后从中创建对象?
  • 正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center
猜你喜欢
  • 2017-01-13
  • 2019-12-08
  • 1970-01-01
  • 2019-04-30
  • 2021-07-10
  • 2022-01-17
  • 2014-10-17
  • 2011-06-23
相关资源
最近更新 更多