在我的数据库(postgreSQl)中有表Person
,其中包含name
和password
。可以动态地(在Spring运行时)使用Hibernate创建新表吗?例如,我想为每个infoTable
创建类似单Person
的内容(创建Person
对象时)。此表的名称应为Person_Id+"infoTable"
。有没有办法做到这一点?
答案 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
,但在此之前请三思。