0

我有一个类别有很多这样的讨论:

@OneToMany(mappedBy="category", fetch= FetchType.EAGER)
List<Discussion> discussions =  new ArrayList<Discussion>();

并通过保存一个新的讨论

Discussion discussion = new Discussion();
discussion.setCategory(category);
discussion.setTitle(text);
discussionFacade.create(discussion);

通过调用 category.getDiscussions(); 我没有看到新的(直到我重新部署)。最好的方法是什么?我不想创建一个在类别上添加讨论的方法(例如 category.addDiscussion(discussion).

谢谢你的帮助

4

2 回答 2

1

使用双向关联时,您应该编写一些方便的方法来实际设置两端的关联。

在持久化被视为拥有方的实体后,底层 JPA 提供者将确定它是否必须持久化关联的实体(取决于 CASCADING 配置),但默认情况下,实体(在您的情况下为 Discussion 实例)由持久性管理上下文但未从数据库刷新。所以,这是正常的行为。

于 2012-04-24T11:40:41.557 回答
1

refresh()在您从数据库中获取实体之前,该列表不会更新。但是你不需要一个单独的方法,使用add你的方法ArrayList

discussions.add(discussion);
于 2012-04-24T11:43:51.453 回答