次の @ManyToMany 関係があるとします。
ユーザー エンティティ
@Entity
public class User {
@ManyToMany
private Set<Role> roles = new HashSet<>();
...
}
Role エンティティ
@Entity
public class Role {
@ManyToMany(mappedBy = "roles")
private Set<User> users = new HashSet<>();
...
}
@ManyToMany 割り当てを行う方法は、次のとおりです。
role.getUsers().add(user);
user.getRoles().add(role);
しかし、その結果、Hibernate/JPA が外に出て、関係の両側でコレクション内のすべてのエンティティをフェッチすることになるのではないでしょうか? コレクションが非常に大きい場合はどうなりますか?それはパフォーマンス/メモリの問題ではないでしょうか? 割り当てを処理するより良い方法はありますか?