не удалять каскад пользователя при удалении группы.
ользую JPA 2.0 и спящий режим. У меня есть класс пользователя и класс группы следующим образом:
public class User implements Serializable {
@Id
@Column(name="USER_ID")
private String userId;
@ManyToMany
@JoinTable(name = "USER_GROUP",
joinColumns = {
@JoinColumn(name = "GROUP_ID")
},
inverseJoinColumns = {
@JoinColumn(name = "USER_ID")
}
)
private Set<Group> groupList;
//get set methods
}
public class Group
{
@Id
@Column(name="GROUP_ID")
private String groupId;
@ManyToMany(mappedBy="groupList")
private Set<User> memberList;
//get set methods
}
Затем я создаю пользователя и группу, а затем назначаю пользователя группе.
То, что я хочу получить, - это когда я удаляю группу, группа будет удалена (конечно), и все отношения группы пользователей, которые есть у группы, будут автоматически удалены из таблицы присоединения USER_GROUP, но сам пользователь не будет удален из ПОЛЬЗОВАТЕЛЬСКИЙ стол.
С кодом, который у меня есть выше, только одна строка в таблице GROUP будет удалена, когда я удаляю группу, и у пользователя все еще будет запись в удаленной группе в таблице присоединения USER_GROUP.
Если я помещу каскад в класс User следующим образом:
@ManyToMany(cascade=CascadeType.ALL)
@JoinTable(name = "USER_GROUP",
joinColumns =
{
@JoinColumn(name = "GROUP_ID")
},
inverseJoinColumns =
{
@JoinColumn(name = "USER_ID")
})
private Set<Group> groupList;
Когда я удаляю группу, пользователь также будет удален!
Есть ли способ добиться того, чего я хочу?