假设我们有以下@ManyToMany 关系:
用户实体
@Entity
public class User {
@ManyToMany
private Set<Role> roles = new HashSet<>();
...
}
角色实体
@Entity
public class Role {
@ManyToMany(mappedBy = "roles")
private Set<User> users = new HashSet<>();
...
}
进行@ManyToMany 分配的方法是执行以下操作:
role.getUsers().add(user);
user.getRoles().add(role);
但是,这不会导致 Hibernate/JPA 出去并获取关系两侧集合中的所有实体吗?如果集合真的很大怎么办 - 这不是性能/内存问题吗?有没有更好的方法来处理任务?