持久性 OneToMany 列表未在持久性上更新

Persistence OneToMany list not being updated on persist

我有一个 CategoriesPosts 个实体和表格。我正在坚持一个新的 Post,它已成功添加到数据库中,但似乎对象没有被添加到加载的类别列表中。

类别:

@OneToMany(fetch=FetchType.LAZY, mappedBy="categories")
public List<Post> getPosts() 
{
    return this.posts;
}

要将新 post 添加到数据库,我只是在做:

Post newPost = new Post(..);
entityManager.persist(newPost);

所以新的 post 被添加到数据库中,但是似乎类别所具有的 Post 的列表在我重新启动服务器或等待几分钟之前不会更新。 . 这就是我获取类别的方式:

Category category = entityManager.find(Category.class, id);

然后我从 getPosts()

得到 Post 的列表

根据提供的信息,您有一个单向关系:

Category --> * Post

为了使此方案正常工作,您需要在创建和保留 Post:

时访问类别
Category category = ...;
Post newPost = new Post(..);
category.getPosts().add(newPost);
entityManager.persist(newPost);
category = entityManager.merge(category);   // may not be needed if category is already managed

如果是双向关系,那么您还需要:

newPost.setCategory(category);

persist(newPost).

之前