2017-12-18 12 views
0

中間結合表からDATAを削除したいとします。キー(PRIMARY_KEY)=(51)、まだテーブルから「eostaff_user_eoclass」を参照している:私はdelete join table rowsカスケード・ハイバーネート

更新またはテーブルの上に削除「eoclass」は、テーブルの上に外部キー制約「fk_o5mbi65xmqv60x0m5v0l1raf8を」違反「eostaff_user_eoclass」 詳細を取得しています。

ここではあなたがいうだけの理由で休止状態の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; 
} 
+1

まず、通常の容疑者をデータベースレベルで確認してください。問題のレコード/エンティティの削除により、子レコードが孤立したままになることはありますか?これらのものをチェックリストから外して、後でHibernateについて心配してください。 –

答えて

0

ある結合テーブルからレコードを削除しません。

マッピングの場合、EOStaffUserをロードし、eoClassArrayからEOclassを削除し、EOStaffUserエンティティ全体をマージする必要があります。