持久性 OneToMany 列表未在持久性上更新
Persistence OneToMany list not being updated on persist
我有一个 Categories
和 Posts
个实体和表格。我正在坚持一个新的 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)
.
之前
我有一个 Categories
和 Posts
个实体和表格。我正在坚持一个新的 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()
根据提供的信息,您有一个单向关系:
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)
.