我有一个类别,有很多像这样的讨论:
@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(讨论)。
感谢您的帮助
答案 0 :(得分:1)
在处理双向关联时,你应该编写一些方便的方法来实际设置两端的关联。
在持久化被视为拥有方的实体之后,底层JPA提供程序将确定它是否必须持久保存关联实体(取决于CASCADING配置),但默认情况下,实体(在您的情况下,是Discussion实例)被管理通过持久化上下文但不从DB刷新。所以,这是一种正常行为。
答案 1 :(得分:1)
在您从数据库中refresh()
实体之前,不会更新列表。但是,您不需要单独的方法,请使用add
:
ArrayList
方法
discussions.add(discussion);