Привет! Я использую JPA2 с реализацией Hibernate, и у меня получилось простое сопоставление:
@Entity
@Table(name = "users")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
@OneToMany(mappedBy = "user", cascade = ALL)
private List<SubscribedUser> subscribedUsers;
}
и вторая таблица (SubscribeedUser) с идентификатором класса:
@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. первая запись корректно удаляется с помощью опции каскада, но я получаю сообщение об ошибке, потому что во второй записи есть ссылка на пользователя с id = 1 в таблице subscribed_users. Есть ли возможность каскадного удаления и второй записи?
Спасибо
1017 * Dawid *