Hibernate вставка проблема - PullRequest
0 голосов
/ 06 июля 2011

У меня есть два объекта: PS_PUBLICATION и PS_PUBLICATION_PROPERTIES

PS_PUBLICATION имеет список PS_PUBLICATION_PROPERTIES

В журналах вставки выглядят нормально, но в конце я получил ошибку

insert into PS_PUBLICATION (CREATION_DATE, message, FK_SUBJECTAREA_ID, status, subject, UPDATE_DATE, id) values (?, ?, ?, ?, ?, ?, ?) 

binding '2011-07-06 10:36:43' to parameter: 1 

binding 'dc8ca7f0-9d8d-11e0-89b1-00212834363a' to parameter: 3 

binding 'PUBLISHED' to parameter: 4 

binding 'publication 2' to parameter: 5 

binding '2011-07-06 10:36:43' to parameter: 6 

binding '13d6df10-a7ab-11e0-ac48-00212834ce10' to parameter: 7 

insert into PS_PUBLICATION_PROPERTIES (PROP_VALUE, PROP_KEY, FK_PUBLICATION_ID) values (?, ?, ?) 

binding 'close' to parameter: 1 

binding 'CALL-CATEGORY-OPEN' to parameter: 2 

binding '13d6df10-a7ab-11e0-ac48-00212834ce10' to parameter: 3 

06 Jul 2011 10:36:43,680  WARN org.hibernate.util.JDBCExceptionReporter:100 - SQL Error: 2291, SQLState: 23000
06 Jul 2011 10:36:43,681 ERROR org.hibernate.util.JDBCExceptionReporter:101 - ORA-02291: integrity constraint (EPF7_NOTIF.SYS_C0018903) violated - parent key not found

WARN org.hibernate.util.JDBCExceptionReporter:100
    - SQL Error: 2291, SQLState: 23000 06 Jul 2011 10:36:43,690 ERROR org.hibernate.event.def.AbstractFlushingEventListener:324
    - Could not synchronize database state with session org.hibernate.exception.ConstraintViolationException: Could not execute JDBC batch update   
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:94)

На вставках все отлично смотрятся!

Есть идеи, что может вызвать это?

Спасибо!

1 Ответ

3 голосов
/ 06 июля 2011

org.hibernate.exception.ConstraintViolationException:

Реализация JDBCException, указывающая, что запрошенная операция DML привела к нарушению определенного ограничения целостности.

Двойная проверка, если данные, которые вы хотите вставить, не нарушают ограничения базы данных. Похоже, база данных недовольна значениями.

(Если вы поймаете это исключение, позвоните ex.getConstraintName(), это должно дать более подробную информацию.)

Не заметил, имя вопроса было в вопросе;) Вы найдете определение этого ограничения в базе данных. Спросите свой экземпляр оракула, и он скажет вам, какая таблица и, следовательно, какая вставка вызывает проблемы.


Ошибка: ORA-02291: нарушение целостности - родительский ключ не найден

Причина: Вы попытались сослаться на таблицу, используя уникальный или первичный ключ, но перечисленные вами столбцы не соответствуют первичному ключу или первичный ключ не существует для этой таблицы.

Вы предоставляете два UUID в качестве внешних ключей - один из них не является первичным ключом в другой таблице. Или, по крайней мере, не распознается оракулом как первичный ключ.

Эта ссылка может помочь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...