Hibernate 游戏:添加“a”意味着什么;“许多”;反对;“一”;列出你的财产吗?

Hibernate 游戏:添加“a”意味着什么;“许多”;反对;“一”;列出你的财产吗?,hibernate,playframework,Hibernate,Playframework,这个问题可能与Hibernate有很大关系,但由于Play混淆了Hibernate,我也不知道 以下面的示例代码为例:用户有许多帖子 public class User extends Model{ ... @OneToMany(mappedBy="author") public List<Post> posts; } public class Post extends Model{ ... @ManyToOne public Use

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

以下面的示例代码为例:用户有许多帖子

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

public class Post extends Model{
    ...
    @ManyToOne
    public User author;
}
公共类用户扩展模型{
...
@OneToMany(mappedBy=“作者”)
公开名单员额;
}
公共类职位扩展模型{
...
@许多酮
公共用户作者;
}
当我用
User=John
创建一个post
newPost
时,为什么我必须调用
John.add(newPost)


约翰和纽波斯特已经在数据库里了。即使没有
.add
调用,表也有外键约束。调用
.add
方法时实际发生了什么?

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


因此,您的
add
方法很可能是将帖子添加到帖子列表中,这样映射的两面都会得到维护(我假设在创建帖子时您将作者设置为该点)。

我没有得到的是。add方法在持久性方面的作用。我查看了由我编写的测试生成的内容,无论我是否调用.add,数据库数据都没有改变。如果我关闭应用程序并将其恢复(在prod中),应用程序的“1”端是否会知道其所有“多”对象?