[英]Hibernate create table at runtime
在我的数据库中(postgreSQl)是表Person
,其中包含name
和password
。 是否可以通过使用Hibernate动态地(在Spring运行时)创建新表? 例如,我想为每个Person
创建类似单个infoTable
东西(创建Person
对象时)。 该表应具有类似于Person_Id+"infoTable"
。 有什么办法吗?
Hibernate确实提供了称为EntityMode.MAP
的模式,该模式非常适合非结构化数据。
为了使用EntityMode.MAP
,您想要创建一个Map<String, Object>
结构,其中映射键代表列名,而对象代表关联的映射键列的值。 要保存此类数据,您可以使用:
session.save(“ the_name_of_my_table”,theEntityMap);
虽然存在,但我认为这对您的用例并不理想。
正如其他人所建议的那样,最好创建一个包含外键的实体,该外键返回到您的Person
实体,并且仅管理单个表中的多行。 有许多数据库功能可以帮助轻松处理大量数据,而不必诉诸EntityMode.MAP
。
您在休眠配置中设置了hibernate.hbm2ddl.auto=update
,但在进行此操作之前请三思。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.