我有一个Categories和Posts实体和表。我持久化了一个新的Post,它正在成功地添加到数据库中,但是,似乎没有将对象添加到加载的类别列表中。
类别:
@OneToMany(fetch=FetchType.LAZY, mappedBy="categories")
public List<Post> getPosts()
{
return this.posts;
}为了将新的帖子添加到数据库中,我只是做了以下工作:
Post newPost = new Post(..);
entityManager.persist(newPost);因此,新的帖子将被添加到数据库中,然而,似乎在我重新启动服务器或等待几分钟之前,类别所包含的帖子列表不会被更新。以下是我获取类别的方式:
Category category = entityManager.find(Category.class, id);然后我得到了来自getPosts()的帖子列表
发布于 2016-04-29 15:31:34
根据所提供的信息,您有一个单向的关系:
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)之前。
https://stackoverflow.com/questions/36941417
复制相似问题