【发布时间】:2012-01-29 01:36:41
【问题描述】:
我用同一个实体创建了关系@ManyToMany。
这是我的实体:
@Entity
@Table(name = "user")
public class User extends BaseEntity implements Serializable {
...
@ManyToMany(cascade = CascadeType.ALL)
@JoinTable(name = "table_friends", joinColumns =
@JoinColumn(name = "userId"), inverseJoinColumns =
@JoinColumn(name = "friendId"))
private List<User> friends;
@ManyToMany(cascade = CascadeType.ALL)
@JoinTable(name = "table_friends", joinColumns =
@JoinColumn(name = "friendId"), inverseJoinColumns =
@JoinColumn(name = "userId"))
private List<User> friendsof;
我创建了一些“用户”并将他们添加到好友列表中:
User u1 = new User();
User u2 = new User();
User u3 = new User();
u1.getFriends().add(u2);
u1.getFriendsof().add(u2);
u1.getFriends().add(u3);
u1.getFriendsof().add(u3);
当我从列表u1.getFriends().remove(u3) 中删除一个朋友时,一切正常。但是当我想从数据库u3.remove()中删除用户时,u1的朋友仍然是一样的,尽管已经在数据库中的朋友列表中是正确的。
- 我可以在删除用户后以某种方式刷新列表吗?
- 如果是这样,我怎么知道我需要刷新哪个好友列表?
编辑:在我看来,我也应该删除 (cascade = CascadeType.ALL),因为当我删除 u1 时,会删除所有配对成员。这是正确的行为吗?
【问题讨论】:
标签: java jpa persistence eclipselink