问题:
像@OneToMany 或@ManyToMany 这样的关联是否会占用大量内存?即会播放!服务器在检索包含相应字段的实体时将所有内容加载到内存中?
以下场景:
型号:
@Entity
public class User extends Model
{
@Id
public Long id;
public String name;
@ManyToMany(cascade=CascadeType.ALL)
@JoinTable( name = "user_user",
joinColumns = @JoinColumn(name = "source_user_id"),
inverseJoinColumns = @JoinColumn(name = "target_user_id"))
List<User> friends = new ArrayList<User>();
/*
Many other fields
.
.
.
*/
}
我们在这样的模板中调用它:
@(user: User)
@for(friend <- user.friends){
<div>
@friend.name
</div>
}
问题继续:
现在假设我碰巧有 1000 个朋友。
- 我的朋友列表中的每个朋友都会被加载到内存中吗?
- 如果是(这似乎是合乎逻辑的结论),结合具有更大内存占用的模型创建 @ManyToMany 或 @OneToMany 关联是否被认为是“不好的做法”,什么被认为是“最佳做法”?