在Jboss服务器启动期间,我得到以下堆栈跟踪。我想知道为什么JPA试图改变看起来很好的表以及如何传递这些ERROR消息。 感谢
2009-08-03 11:28:49,683 ERROR [org.hibernate.tool.hbm2ddl.SchemaUpdate]不成功:alter table BDPARAMS添加约束FK61733C48FA34BFDC外键(ITEMID)引用RTELEMENT 2009-08-03 11:28:49,683 ERROR [org.hibernate.tool.hbm2ddl.SchemaUpdate]不成功:alter table BDPARAMS添加约束FK61733C48FA34BFDC外键(ITEMID)引用RTELEMENT 2009-08-03 11:28:49,683 ERROR [org.hibernate.tool.hbm2ddl.SchemaUpdate] ORA-02275:表格中已经存在这样的参照约束
2009-08-03 11:28:49,683 ERROR [org.hibernate.tool.hbm2ddl.SchemaUpdate] ORA-02275:表中已经存在这样的引用约束
2009-08-03 11:28:49,745 ERROR [org.hibernate.tool.hbm2ddl.SchemaUpdate]不成功:alter table CONTENTITEM添加约束FK692B5EEC44F32395外键(parent_id)引用CONTENTLOCATION 2009-08-03 11:28:49,745 ERROR [org.hibernate.tool.hbm2ddl.SchemaUpdate]不成功:alter table CONTENTITEM添加约束FK692B5EEC44F32395外键(parent_id)引用CONTENTLOCATION 2009-08-03 11:28:49,745 ERROR [org.hibernate.tool.hbm2ddl.SchemaUpdate] ORA-02275:表格中已经存在这样的参照约束
答案 0 :(得分:4)
就我而言,当我将 default_schema name 添加到Hibernate配置文件时,问题就解决了:
<property name="hibernate.default_schema" value="db_default_schema_name" />
具体来说,在Play框架2.4中,我将上面的行添加到conf\META-INF\persistence.xml
文件中。
使用的Hibernate版本:4.3.11
答案 1 :(得分:1)
我有类似的错误,问题源于jdbc子系统获取元数据的不准确性。元数据回来告诉hibernate约束不在那里,但实际上它不是 - 可能有很多原因。我建议尝试不同的dbms也许问题是由于生成表的当前和用户之间的用户差异。你的映射也可能有问题。
但最终解决它的唯一简单方法是在启动时关闭架构同步。
答案 2 :(得分:1)
在我的情况下,在我更改项目中的java包结构后出现错误消息。我认为hibernate对此有点困惑。
我有类似的错误(alter table ... add constraint),我正在使用Oracle DB 10g。 对我来说,最简单的解决方案是导出相关表(插入)的数据,删除它们,启动再次创建表的应用程序,然后再次导入表数据。然后Hibernate自己再次创建表,错误消息就消失了!
答案 3 :(得分:1)
我遇到了同样的错误,但通过几个简单的步骤修复了它。
将当前数据库Mysqldump转储出current.sql 将hibernate.cfg更改为create,以便重新创建数据库表 将新数据库Mysqldump转储出new.sql
将create table new复制到current 在current.sql中重新插入数据库mysql