簡體   English   中英

刪除聯接表行級聯休眠

[英]delete join table rows cascade hibernate

我想從中間聯接表中刪除數據。 我正進入(狀態

對表“ eoclass”進行更新或刪除違反了表“ eostaff_user_eoclass”上的外鍵約束“ fk_o5mbi65xmqv60x0m5v0l1raf8”。詳情:密鑰(primary_key)=(51)仍從表“ eostaff_user_eoclass”中引用。

這是我的實體

@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;
 }

您不能簡單地刪除EOClass因為Hibernate不會從EOClass表中刪除記錄。

為了您的映射,你需要加載EOStaffUser ,刪除EOclasseoClassArray和合並整個EOStaffUser實體。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM