我正在使用一个在 tomcat 上运行 guice-servlet 并在 guice-persist 下休眠的环境。我遇到的问题是,当我在一个请求中使用 em.getReference() 时,加载的代理对象保留在 entitymanager 缓存中,并且可能出现在我希望从数据库中完全加载对象的另一个请求中。
我曾经在 EJB3 环境中使用休眠,这是默认行为。实体管理器缓存对于每个新请求都是清除的。guice-persist 为每个请求清除会话不是更安全的行为吗?或者至少将其作为 JpaPersistModule 的设置?
hibernate SessionImpl "autoClear" 中有一个特殊的标志,它负责 EJB3 行为。当 JpaPersistModule 创建新的实体管理器时,有什么方法可以启用该标志?