首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >持久化OneToMany列表未在持久化上更新

持久化OneToMany列表未在持久化上更新
EN

Stack Overflow用户
提问于 2016-04-29 14:50:21
回答 1查看 52关注 0票数 0

我有一个CategoriesPosts实体和表。我持久化了一个新的Post,它正在成功地添加到数据库中,但是,似乎没有将对象添加到加载的类别列表中。

类别:

代码语言:javascript
复制
@OneToMany(fetch=FetchType.LAZY, mappedBy="categories")
public List<Post> getPosts() 
{
    return this.posts;
}

为了将新的帖子添加到数据库中,我只是做了以下工作:

代码语言:javascript
复制
Post newPost = new Post(..);
entityManager.persist(newPost);

因此,新的帖子将被添加到数据库中,然而,似乎在我重新启动服务器或等待几分钟之前,类别所包含的帖子列表不会被更新。以下是我获取类别的方式:

代码语言:javascript
复制
Category category = entityManager.find(Category.class, id);

然后我得到了来自getPosts()的帖子列表

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-04-29 15:31:34

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

代码语言:javascript
复制
Category --> * Post

要使此场景正常工作,在创建和持久化Post时,需要访问类别:

代码语言:javascript
复制
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

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

代码语言:javascript
复制
newPost.setCategory(category);

persist(newPost)之前。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36941417

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档