Ошибка обновления схемы HIbernate - PullRequest
2 голосов
/ 28 августа 2009

Во время запуска сервера Jboss я получаю следующую трассировку стека. Интересно, почему JPA пытается изменить таблицы, которые кажутся хорошими, и как передать эти сообщения об ошибках. Спасибо

2009-08-03 11: 28: 49,683 ОШИБКА [org.hibernate.tool.hbm2ddl.SchemaUpdate] Неудачно: изменить таблицу BDPARAMS добавить ограничение FK61733C48FA34BFDC ссылки на внешний ключ (ITEMID) RTELEMENT 2009-08-03 11: 28: 49,683 ОШИБКА [org.hibernate.tool.hbm2ddl.SchemaUpdate] Неудачно: таблица изменений BDPARAMS изменения ограничения FK61733C48FA34BFDC ссылки на внешний ключ (ITEMID) ссылаются на RTELEMENT 2009-08-03 11: 28: 49 683 ОШИБКА [org.hibernate.tool.hbm2ddl.SchemaUpdate] ORA-02275: такое ссылочное ограничение уже существует в таблице

2009-08-03 11: 28: 49,683 ОШИБКА [org.hibernate.tool.hbm2ddl.SchemaUpdate] ORA-02275: такое ссылочное ограничение уже существует в таблице

2009-08-03 11: 28: 49,745 ОШИБКА [org.hibernate.tool.hbm2ddl.SchemaUpdate] Неудачно: изменить таблицу CONTENTITEM добавить ограничение FK692B5EEC44F32395 ссылки на внешний ключ (parent_id) CONTENTLOCATION 2009-08-03 11: 28: 49,745 ОШИБКА [org.hibernate.tool.hbm2ddl.SchemaUpdate] Неудачно: изменить таблицу CONTENTITEM добавить ограничение FK692B5EEC44F32395 ссылки на внешний ключ (parent_id) CONTENTLOCATION 2009-08-03 11: 28: 49,745 ОШИБКА [org.hibernate.tool.hbm2ddl.SchemaUpdate] ORA-02275: такое ссылочное ограничение уже существует в таблице

Ответы [ 4 ]

4 голосов
/ 20 июля 2016

В моем случае проблема была решена, когда я добавил имя_файмы по умолчанию в файл конфигурации Hibernate:

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

В частности, в Play Framework 2.4 я добавил указанную выше строку в файл conf\META-INF\persistence.xml.

Используемая версия Hibernate: 4.3.11

1 голос
/ 17 февраля 2011

В моем случае сообщения об ошибках возникали после того, как я изменил структуру пакета Java в своем проекте. Я думаю, что hibernate был немного смущен этим.

У меня были похожие ошибки (измените таблицу ... добавьте ограничение), и я использую Oracle DB 10g. Для меня самым простым решением было экспортировать данные соответствующих таблиц (вставок), удалить их, снова запустить приложение, которое создает таблицы, а затем снова импортировать данные таблиц. Затем Hibernate снова создает таблицы и сообщения об ошибках исчезают!

1 голос
/ 28 сентября 2011

У меня была та же ошибка, но я исправил ее несколькими простыми шагами.

Дамп текущей базы данных Mysqldump out current.sql Измените hibernate.cfg, чтобы создать, чтобы он воссоздает таблицу базы данных. Дамп новой базы данных Mysqldump из new.sql

Скопировать новую таблицу для создания новой переустановите базу данных mysql в current.sql

1 голос
/ 28 августа 2009

У меня были похожие ошибки, и проблемы связаны с неточностями в получении метаданных подсистемой jdbc. Метаданные возвращаются, чтобы сказать hibernate, что ограничения нет, но на самом деле его нет - может быть по ряду причин. Я бы посоветовал попробовать другой dbms также, возможно, проблема связана с пользовательскими различиями между текущим и пользователем, который создал таблицу. Также может быть что-то не так с вашим отображением.

Но, в конечном счете, единственный надежный способ исправить это - отключить синхронизацию схемы при запуске.

...