我有两个实体: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)
在插页中,everythign看起来很好!
知道可能导致这种情况的原因吗?
谢谢!
答案 0 :(得分:3)
org.hibernate.exception.ConstraintViolationException
:
JDBCException的实现,指示请求的DML操作导致违反已定义的完整性约束。
仔细检查要插入的数据是否违反数据库约束。看起来数据库对值不满意。
(如果您发现该异常,请致电ex.getConstraintName()
,这应该提供更多详细信息。)
没有注意到,约束名称在问题中;)您将在数据库中找到该约束的定义。询问你的oracle实例,它会告诉你哪个表以及哪个插件会导致麻烦。
错误:强> ORA-02291:违反了完整性约束 - 未找到父密钥
<强>原因:强> 您尝试使用唯一键或主键引用表,但列出的列与主键不匹配,或者此表不存在主键。
您提供两个UUID作为外键 - 其中一个不是其他表中的主键。或者至少 - 没有被oracle认可为主键。