【发布时间】:2021-05-22 18:01:36
【问题描述】:
我正在使用 Hibernate 5.4.31 并且有一个问题,即使 hibernate.hbm2ddl.auto 值设置为更新,hibernate 总是尝试重新创建现有的表和外键。另一方面,对实体的任何更新都不会反映在表结构中。我认为这是因为尝试在每次启动时重新创建表。
创建,没有按预期工作。
弗洛里安
【问题讨论】:
标签: hibernate
我正在使用 Hibernate 5.4.31 并且有一个问题,即使 hibernate.hbm2ddl.auto 值设置为更新,hibernate 总是尝试重新创建现有的表和外键。另一方面,对实体的任何更新都不会反映在表结构中。我认为这是因为尝试在每次启动时重新创建表。
创建,没有按预期工作。
弗洛里安
【问题讨论】:
标签: hibernate
经过多次尝试和错误,我找到了这种行为的原因:
无论出于何种原因,我的 hibernate.cfg.xml 文件中有以下配置:
<property name="hibernate.temp.use_jdbc_metadata_defaults">false</property>
我不知道为什么有人将这种和平的代码添加到配置中(它是一个现有的项目)。查看休眠文档,我发现了这个定义:
“该设置用于控制我们是否应该在数据库可能不可用时(主要是在工具使用方面)查阅 JDBC 元数据以确定某些设置默认值。”
我不知道为什么我们需要这个配置,因此我删除了它,瞧,Hibernate 并没有尝试在每次启动时重新创建现有表。
希望有人能帮忙。
弗洛里安
【讨论】: