1

问题
像@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 关联是否被认为是“不好的做法”,什么被认为是“最佳做法”?
4

0 回答 0