0

这个问题可能与 Hibernate 有很大关系,但是由于 Play 混淆了 Hibernate,而且我也不知道......

采取以下示例代码:用户有很多帖子。

public class User extends Model{
    ...
    @OneToMany(mappedBy="author")
    public List<Post> posts;
}

public class Post extends Model{
    ...
    @ManyToOne
    public User author;
}

当我创建一个帖子newPostUser=John,我为什么要打电话John.add(newPost)

John 和 newPost 已经在数据库中。即使没有.add调用,表也有外键限制。当我调用该.add方法时实际发生了什么?

4

1 回答 1

1

好吧,这取决于.add方法中的代码。但是使用 Hibernate,您需要在双向映射中维护映射的两侧。

因此,您的add方法可能是将 Post 添加到帖子列表中,以便维护映射的两侧(我假设您在创建 Post 时设置了作者)。

于 2010-12-17T11:12:00.547 回答