0

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

4

1 回答 1

0

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

Parent parentToUpdate;

...
child.setParent(parentToUpdate);

...
session.persist(child);

如果您想将更改传输到数据库中,您还应该将它们持久化。

于 2013-09-04T14:29:19.013 回答