Hibernate 休眠模式更新错误

Hibernate 休眠模式更新错误,hibernate,jboss,hbm2ddl,Hibernate,Jboss,Hbm2ddl,在Jboss服务器的启动过程中,我得到了以下stacktrace。我想知道为什么JPA试图修改看起来很好的表,以及如何传递这些错误消息。 谢谢 2009-08-03 11:28:49683错误[org.hibernate.tool.hbm2ddl.SchemaUpdate]未成功:更改表BDPARAMS添加约束FK61733C48FA34BFDC外键(ITEMID)引用RTELEMENT 2009-08-03 11:28:49683错误[org.hibernate.tool.hbm2ddl.Sc

在Jboss服务器的启动过程中,我得到了以下stacktrace。我想知道为什么JPA试图修改看起来很好的表,以及如何传递这些错误消息。 谢谢

2009-08-03 11:28:49683错误[org.hibernate.tool.hbm2ddl.SchemaUpdate]未成功:更改表BDPARAMS添加约束FK61733C48FA34BFDC外键(ITEMID)引用RTELEMENT 2009-08-03 11:28:49683错误[org.hibernate.tool.hbm2ddl.SchemaUpdate]未成功:更改表BDPARAMS添加约束FK61733C48FA34BFDC外键(ITEMID)引用RTELEMENT 2009-08-03 11:28:49683错误[org.hibernate.tool.hbm2ddl.SchemaUpdate]ORA-02275:表中已存在此类引用约束

2009-08-03 11:28:49683错误[org.hibernate.tool.hbm2ddl.SchemaUpdate]ORA-02275:表中已存在此类引用约束

2009-08-03 11:28:49745错误[org.hibernate.tool.hbm2ddl.SchemaUpdate]失败:alter table CONTENTITEM添加约束FK692B5EEC44F32395外键(父项id)引用CONTENTLOCATION 2009-08-03 11:28:49745错误[org.hibernate.tool.hbm2ddl.SchemaUpdate]失败:alter table CONTENTITEM添加约束FK692B5EEC44F32395外键(父项id)引用CONTENTLOCATION
2009-08-03 11:28:49745错误[org.hibernate.tool.hbm2ddl.SchemaUpdate]ORA-02275:这样的引用约束已经存在于表中

我也有过类似的错误,问题源于jdbc子系统获取元数据的不准确。元数据回来告诉hibernate约束不存在,但实际上它不存在——可能有很多原因。我建议尝试不同的dbms,也可能是因为当前用户和生成表的用户之间存在用户差异。您的映射也可能有问题


但最终唯一的解决方法是在启动时关闭模式同步。

在我的例子中,错误消息是在我更改项目中的java包结构后出现的。我想hibernate对此有点困惑

我也有类似的错误(ALTERTABLE…add constraint),我正在使用Oracle DB 10g。
对我来说,最简单的解决方案是导出相关表(insert)的数据,删除它们,再次启动创建表的应用程序,然后再次导入表数据。然后Hibernate再次自己创建表,错误消息消失了

我也有同样的错误,但通过几个简单的步骤修复了它

转储当前数据库Mysqldump out current.sql 将hibernate.cfg更改为create,以便它重新创建数据库表 转储新数据库Mysqldump out new.sql

将“创建新表”复制到当前
在current.sql中重新插入数据库mysql

在我的例子中,当我向Hibernate配置文件添加默认的_架构名称时,问题得到了解决:

<property name="hibernate.default_schema" value="db_default_schema_name" />

具体来说,在PlayFramework2.4中,我将上面的一行添加到
conf\META-INF\persistence.xml
文件中


使用的Hibernate版本:4.3.11

您使用什么RDBMS?您的hibernate.hbm2ddl.auto值的设置是什么?我使用Oracle 11 G,hibernate.hbm2ddl.auto使用update。仅供参考,即使它显示这些错误,但应用程序已正确部署且工作正常。但是我想修正这个错误。