OneToMany:更新父级后,父级实体的引用在子级中不是最新的

时间:2013-09-04 14:21:44

标签: java hibernate

我有一个经典的一对多关系。我使用session.createQuery()方法从数据库中读取子实体列表,仅过滤所需的少量子实体。每个孩子都引用了父实体。然后我更新父实体的一些字段并保存它(参见日志和数据库中保存的更改)。但是当我从child.getParent()这样的子实体中获取父级时,它仍会在更新之前返回对具有字段值的父对象的引用。 当构造新的子实体而不是使用session.createQuery()从db中读取它时,问题不会出现 - 引用的父实体的字段包含实际值。 bean使用session.createQuery()可能有什么问题?任何意见,将不胜感激。

1 个答案:

答案 0 :(得分:0)

您必须再次为孩子设置“已更改的父级”:

Parent parentToUpdate;

...
child.setParent(parentToUpdate);

...
session.persist(child);

如果您想将更改传输到数据库,您还应该保留它们。