Hibernate在运行时创建表

时间:2017-02-17 21:17:06

标签: java database spring postgresql hibernate

在我的数据库(postgreSQl)中有表Person,其中包含namepassword。可以动态地(在Spring运行时)使用Hibernate创建新表吗?例如,我想为每个infoTable创建类似单Person的内容(创建Person对象时)。此表的名称应为Person_Id+"infoTable"。有没有办法做到这一点?

2 个答案:

答案 0 :(得分:0)

Hibernate确实提供了一种名为EntityMode.MAP的模式,非常适合非结构化数据。

要使用EntityMode.MAP,您需要创建一个Map<String, Object>结构,其中地图键表示列名称,对象表示关联的地图键列的值。要保存此类数据,请使用:

  

session.save(“the_name_of_my_table”,theEntityMap);

虽然存在,但我认为这不适合您的用例。

正如其他人所建议的那样,最好将包含外键的实体创建回Person实体,并仅管理单个表中的多行。有许多数据库功能可以帮助您轻松处理大量数据,而无需使用EntityMode.MAP

答案 1 :(得分:-1)

您在休眠配置中设置hibernate.hbm2ddl.auto=update,但在此之前请三思。

相关问题