我使用 Spring Roo (Spring MVC 3)、JPA 1、Hibernate、JSTL、JQUERY 等开发了一个 Web 应用程序。持久性上下文是通过 JPA 事务管理器管理的应用程序。使用的数据库是 MSSQL2005。该应用程序在 JBOSS 5 上运行。
一切正常。我的问题一直在我脑海中,但我还没有找到合适的答案。
假设如下:
- 我使用 entitymanager.find() 从表 T 中检索一些行,并将数据呈现到页面
- 我手动更改了行中的一个字段值(通过 SQL 和 gui 工具)。
- 我立即重复步骤 (1),并且手动更新的值可用。
它是否正确?我的理解是持久性上下文中的值不会得到更新,除非:
- 调用 em.refesh()
- 对象在 PERSISTENCE CONTEXT 中不可用(--> 改为查询数据库)
我的经验似乎与下面的链接相矛盾,这对我来说实际上是合乎逻辑的。
更新的数据(在数据库中)通过 JPA/Eclipselink 不可见
非常感谢
小憩