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

Java OneToMany:更新父实体后,子实体中对父实体的引用不是最新的,java,hibernate,Java,Hibernate,我有一个经典的一对多关系。我使用session.createQuery()方法从数据库中读取子实体列表,以仅过滤所需的少量子实体。每个子实体都有对父实体的引用。然后,我更新父实体的一些字段并保存它(请参见日志和数据库中的内容,这些更改被持久化)。但是,当我从任何子实体(如child.getParent()获取parent)时,它仍然会在更新之前返回对父对象的引用,其中包含字段值。 当构造一个新的子实体而不是使用session.createQuery()从db中读取它时,问题不会出现-引用的父实体

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

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

Parent parentToUpdate;

...
child.setParent(parentToUpdate);

...
session.persist(child);

如果要将更改传输到数据库中,还应将其持久化。

您不认为代码有助于发现代码中的问题吗?