繁体   English   中英

在运行时休眠表

[英]Hibernate create table at runtime

在我的数据库中(postgreSQl)是表Person ,其中包含namepassword 是否可以通过使用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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM