这个问题可能与Hibernate有很大关系,但是因为Play会混淆Hibernate并且我不知道它...
采用以下示例代码:用户有很多帖子。
public class User extends Model{
...
@OneToMany(mappedBy="author")
public List<Post> posts;
}
public class Post extends Model{
...
@ManyToOne
public User author;
}
当我使用newPost
创建帖子User=John
时,为什么我必须致电John.add(newPost)
?
John和newPost已经在数据库中。即使没有.add
调用,表也有外键限制。当我调用.add
方法时实际发生了什么?
答案 0 :(得分:1)
这取决于.add
方法中的代码。但是使用Hibernate,您需要在双向映射中维护映射的两个方面。
因此,您的add
方法可能会将帖子添加到帖子列表中,以便维护映射的两面(我假设您在创建帖子时在此处设置作者)。