Play:在“one”列表属性中添加“many”对象有什么作用?

时间:2010-12-17 08:58:57

标签: hibernate playframework

这个问题可能与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方法时实际发生了什么?

1 个答案:

答案 0 :(得分:1)

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

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