我有一个Categories
和Posts
实体和表。我正在保存一个新的Post,它正在成功地添加到数据库中,但对象似乎没有添加到加载的类别列表中。
分类:
@OneToMany(fetch=FetchType.LAZY, mappedBy="categories")
public List<Post> getPosts()
{
return this.posts;
}
要将新帖子添加到数据库中,我只需执行以下操作:
Post newPost = new Post(..);
entityManager.persist(newPost);
因此,新帖子被添加到数据库中,但似乎Categories拥有的帖子列表在我重新启动服务器或等待几分钟之前不会更新。。这就是我获取类别的方式:
Category category = entityManager.find(Category.class, id);
然后我从getPosts()
得到帖子列表
根据提供的信息,您有一个单向关系:
Category --> * Post
为了使此场景正常工作,您需要在创建和持久化Post:时访问Category
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);
在CCD_ 4之前。