こんにちは、Hibernate 実装で JPA2 を使用しています。次のような単純なマッピングを取得しました。
@Entity
@Table(name = "users")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
@OneToMany(mappedBy = "user", cascade = ALL)
private List<SubscribedUser> subscribedUsers;
}
および id class を持つ 2 番目のテーブル (SubscribeUser):
@Entity
@Table(name = "subscribed_users")
@IdClass(SubscribedUserId.class)
public class SubscribedUser {
@Id
@ManyToOne
@JoinColumn(name = "id_user", referencedColumnName = "id")
private User user;
@Id
@ManyToOne
@JoinColumn(name = "id_subscribed_user", referencedColumnName = "id")
private User subscribedUser;
}
2 つのレコードが subscribed_users テーブルであると仮定しましょう: 1.
user | subscribed_user
1 | 2
2.
user | subscribed_user
2 | 1
問題は、id = 1 のユーザーを削除すると、最初のレコードはカスケード オプションで正しく削除されますが、subsubscribed_users テーブルの 2 番目のエントリに id = 1 のユーザーへの参照がまだあるため、エラーが発生することです。 . 2番目のレコードもカスケード削除する可能性はありますか?
ありがとう
ダウィド