【发布时间】:2020-01-28 22:50:53
【问题描述】:
我正在尝试创建一个 Spring Boot 应用程序,我想在其中按需创建和使用数据库表,而不为它们定义实体/存储库。
我有一个基础业务实体和业务类型实体来保留业务类型。我希望能够用自己的表为业务类型(比如 Coffeeshop)动态创建一个表(同时我可以将表的名称保留在 BusinessType 表上并决定从那里查询哪个表)。
因此,如果不定义实体和/或为 Coffeeshop 创建 CrudRepository,我可以创建一个名为 Coffeeshop 的表,然后再对其进行一些查询吗?
如果没有,我有什么选择?在典型的 Spring Data JPA 应用程序中,您如何处理具有基类型并允许系统具有更多具体类型(持久并与基类型关联)的情况?
谢谢
【问题讨论】:
-
您可以使用模型创建表。创建一个具有@Entity 注释和@Table(name="yourtablename") 的类。也在您的 application.propertirs 文件中。设置 spring.jpa.hibernate.ddl-auto=create
-
这是在编译之前定义实体的标准方法,我问的是我们是否可以在运行时创建数据库表并在以后使用它们。
-
我也在寻找类似的解决方案。任何指针寻求帮助??
-
寻找同样的问题 谁能帮忙?
-
我想说动态创建表对于关系数据库来说是一种不好的方法,但是您可能想检查是否可以序列化为 Json?也许创建一个包含两列的表 - TYPE 和 PAYLOAD 并在 TYPE 列中写入“Coffeeshop”,并在 PAYLOAD 列中写入序列化 JSON 咖啡店。
标签: java spring-boot spring-data-jpa ddl generic-programming