在我正在处理的模块中,我收到了此错误,据说是由org.hibernate.exception.ConstraintViolationException: Could not execute JDBC batch update
引起的
和java.sql.BatchUpdateException
(完整的堆栈跟踪在这里:click here)。
从我从其他帖子中读到的内容,这肯定是由违反主键引起的。但是我甚至无法复制问题,因此我至少可以追踪真正的错误并解决问题。每次我插入一个相同的条目与已经在数据库中的条目,它将只是相互合并,没有错误。但是,我在部署中遇到了很多这样的错误,所以我不太确定部署服务器中发生了什么(我只是一个学生开发人员,所以我仍然有点'noob'。) / p>
即使有人能指出我的方向,我也会很感激。谢谢。 (如果需要添加某些内容,请通知我)
以下是该模块的hibernate映射片段(希望这会有所帮助):
<hibernate-mapping package="edu.umd.cattlab.schema.cattXML.extensions.VaTraffic"
default-lazy="false" default-cascade="all, delete-orphan" schema="vatraffic">
<typedef class="edu.umd.cattlab.schema.hibernate.util.XMLGregorianCalendarType" name="XMLCal"/>
<class name="VaTrafficAssociatedEvent" table="associated_event">
<id name="associatedEventId" column="associated_event_id">
<generator class="sequence">
<param name="sequence">ritis.associated_event_id_seq</param>
</generator>
</id>
<property name="secondaryEventId" column="secondary_event_id" not-null="true" />
<property name="unassociatedTimestamp" type="XMLCal" column="unassociated" />
<property name="autoRelated" column="auto_related" not-null="true" />
<many-to-one name="relationshipType" column="relationship_type" not-null="true" cascade="none" />
</class>
这是使用上述映射的java代码的一部分:click here
答案 0 :(得分:3)
您可以拥有比主键约束更多的约束。难道你有违反的外键约束吗?或者可能是多列唯一约束。您能否为要更新的表格包含DDL?
答案 1 :(得分:2)
在查看日志时,它违反了pk约束。特别是错误:重复键违反了唯一约束“associated_event_pk”
试图确定为什么会发生这种情况可能是一个深刻的过程,但对于初学者,你如何为这个领域创造价值?在您的ddl中,它显示为“nextval”字段,但您的日志似乎表明存在显式值。这个价值来自哪里?你为什么不让postgre设置值呢?