Hibernate:删除连接条目,但不删除实体

问题描述 投票:0回答:1

我在员工和状态组之间有一个多对多关系,通过连接表employee_status_group实现。我想达到以下目标:

  • 当状态组被删除时:删除加入条目,但不删除员工
  • 当员工被删除时:删除加入条目,但不删除组

目前,当我尝试删除所有状态组时,出现以下异常:

Caused by: org.postgresql.util.PSQLException: 
ERROR: update or delete on table "status_group" violates foreign key constraint "status_group_fk" on table "employee_status_group"

我的代码:

员工.kt

@Entity
data class Employee(
    @Id
    @GeneratedValue(strategy = GenerationType.UUID)
    val id: UUID? = null,

    @ManyToMany
    @JoinTable(name = "employee_status_group",
               joinColumns = [JoinColumn(name = "employee_id")],
               inverseJoinColumns = [JoinColumn(name = "status_group_id")])
    var statusGroups: MutableSet<StatusGroup> = mutableSetOf()
)

状态组.kt

@Entity
data class StatusGroup(
    @Id
    @GeneratedValue(strategy = GenerationType.UUID)
    val id: UUID? = null
)

如何设置级联类型才能达到此目的?

hibernate kotlin jpa
1个回答
0
投票

答案很简单:没有级联类型可以满足您的需求。

在删除该组之前,您必须自己从

Employee.statusGroups

 中删除该组。

© www.soinside.com 2019 - 2024. All rights reserved.