【问题标题】:How to dynamically add columns in Database?如何在数据库中动态添加列?
【发布时间】:2022-07-21 20:07:36
【问题描述】:

我有一个带有 Mysql 和 Hibernate 的 Spring Boot 项目,我所需要的只是为用户提供动态更改或更改数据库列(运行时)的权限,我还没有找到任何适用于该 XML 方法的好方法非常忙碌,需要进行很多更改。

例子:

具有列的表用户 “用户名”和“密码”

并且从 UI 客户端将添加另一列“电子邮件”,因此它应该在数据库表中进行更改。

【问题讨论】:

  • Hibernate 不是这个工具。您需要在运行时更新类文件或 XML 文件。问题是这仅适用于该特定用户。充其量你可以让用户改变表格,但将其传播到休眠/java代码根本不可行

标签: java mysql spring-boot api hibernate


【解决方案1】:

您在此处具体要求的内容需要在运行时更改您的实体,而这是不可能的。您可以通过在 User 表中添加一个额外的列 customerAttributes 并将该信息存储为映射来实现类似的解决方案:

@Convert(converter = HashMapConverter.class)
private Map<String, Object> customerAttributes;

有一个很好的教程:https://www.baeldung.com/hibernate-persist-json-object

【讨论】:

    猜你喜欢
    • 2013-06-10
    • 2018-06-16
    • 1970-01-01
    • 1970-01-01
    • 2016-07-15
    • 1970-01-01
    • 2017-05-12
    • 2015-01-16
    • 2015-09-13
    相关资源
    最近更新 更多