在 Hibernate 中获取所有会话缓存的对象

Get all session-cached objects in Hibernate

我有一个使用 org.hibernate.Query.executeUpdate() 执行 HQL 并更改数据库中某些行的方法。如果某些受查询行影响的行之前已加载到当前会话中(例如使用 Session.get()),它们现在已过时并需要刷新。

但我希望该方法独立于之前的会话工作,并且不跟踪所有可能受影响的已加载对象以便之后刷新它们。 Hibernate 是否可以检索和遍历 1 级缓存中的对象?

我找到了以下适用于我的问题的解决方案:

Map.Entry<Object,EntityEntry>[] entities = ((SessionImplementor)session).getPersistenceContext().reentrantSafeEntityEntries()