繁体   English   中英

org.hibernate.exception.ConstraintViolationException: 无法执行 JDBC 批量更新

[英]org.hibernate.exception.ConstraintViolationException: Could not execute JDBC batch update

In my module that I'm working on, I got this error, which is said caused by org.hibernate.exception.ConstraintViolationException: Could not execute JDBC batch update and java.sql.BatchUpdateException (the full stack trace is in here: click在这里)。

从我从其他帖子中读到的内容来看,这肯定是由于违反了主键造成的。 但是我什至无法复制问题,以便我至少可以追踪真正的错误并解决问题。 每次我插入一个与数据库中已经存在的条目相同的条目时,它都会简单地相互合并而不会出错。 但是,我在部署中遇到了很多这样的错误,所以我不太确定部署服务器中发生了什么(我只是一名学生开发人员,所以在这方面我还是有点“菜鸟”)。

即使有人能指出我的方向,我也会很感激。 谢谢。 (如果有什么需要补充的告诉我)

这是模块的 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 代码的一部分:点击这里

您可以有更多的约束,而不仅仅是主键约束。 可能是您违反了外键约束吗? 或者可能是多列唯一约束。 您能否包括您正在更新的表的 DDL?

在查看日志时,它违反了 pk 约束。 特别是错误:重复键违反唯一约束“关联事件pk”

试图确定为什么会发生这种情况可能需要深入研究,但对于初学者来说,您如何为该字段生成值? 在您的 ddl 中,它显示为“nextval”字段,但您的日志似乎表明存在显式值。 这个值是从哪里来的? 你为什么不让 postgre 自己设置值?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM