删除连接表行级联hibernate

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

我想从中间连接表中删除DATA。我正进入(状态

表“eoclass”上的更新或删除违反了表“eostaff_user_eoclass”上的外键约束“fk_o5mbi65xmqv60x0m5v0l1raf8”详细信息:仍然从表“eostaff_user_eoclass”引用了Key(primary_key)=(51)。

这是我的实体

@Entity
@Table(name = "EOSTAFF_USER")
@SequenceGenerator(name = "EOSTAFF_USER_SEQ", initialValue = 1, allocationSize = 1, sequenceName = "EOSTAFF_USER_SEQ")
public class EOStaffUser extends EOObject {

    @Id
    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "EOSTAFF_USER_SEQ")
    @Column(name = "PRIMARY_KEY")
    public long primaryKey;

    @ManyToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
    public List<EOClass> eoClassArray = new LinkedList<>();
}

@Entity
@Table(name = "EOCLASS", uniqueConstraints = @UniqueConstraint(columnNames = { "eoinstitute_primary_key",
    "lkclass_primary_key", "lksection_primary_key", "lksubject_primary_key" }) )

@SequenceGenerator(name = "EOCLASS_SEQ", initialValue = 1, allocationSize = 1, sequenceName = "EOCLASS_SEQ")

public class EOClass extends EOObject {

    @Id
    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "EOCLASS_SEQ")
    @Column(name = "PRIMARY_KEY")
    public long primaryKey;
 }
java postgresql hibernate many-to-many hibernate-cascade
1个回答
0
投票

你不能简单地删除EOClass,因为Hibernate不会从连接表中删除记录。

对于您的映射,您需要加载EOStaffUser,从EOclass删除eoClassArray并合并整个EOStaffUser实体。

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