首页 > 解决方案 > 插入时休眠异常

问题描述

我有两个表应用程序,先生。我正在使用 JPA、Hibernate 进行 ORM 映射。插入记录时出现问题。请帮我。

* Mr_id in application table is a foreign key

* code in mr table is unique key

* mr_id in MR table is primary key

申请表:

(id, mr_id)

(1,空)

(2,空)

先生表:

(mr_id、代码、名称)

(1,code1,mr1)

(2、code2、mr2)

I have a jpa repository :   ApplicationRepository

application = Application(1)

application.mr = MR(1,code1,mr1)

when I run  : applicationRepository.save(applications[0])
it causes a problem

Reason: Mr record with (1,code1,mr1) alredy present in mr table. 

How to solve this problem with JPA, Hibernate annotation

---------------------------------
    Application {
       @Id
       var id: Int;

       @ManyToOne(cascade = [(CascadeType.PERSIST)])
       @JoinColumn(name = "mr_id")
       var mr: MR? = null
    }

标签: javaspringhibernatekotlinspring-data-jpa

解决方案


我认为发生这种情况是因为 JPA 试图在持久应用程序之后保留 MR(因为它们已分离),但 mr_id = 1 的 MR 已经存在。尝试使用 mr_id = 1(不是创建)找到 mr 并将此 mr 设置为 application.mr


推荐阅读