我有一个PostgreSQL 8.4数据库,具有一些表和视图,这些表和视图基本上是连接在一些表上。我使用NetBeans 7.2(如
here所述)创建从这些视图和表中派生的基于REST的服务,并将其部署到Glassfish 3.1.2.2服务器。
还有一个进程异步地更新用于构建视图的一些表中的内容。我可以直接查询视图和表格,看到这些更改已经正确发生。但是,当从基于REST的服务中提取时,这些值与数据库中的值不同。我假设这是因为JPA已经缓存了Glassfish服务器上的数据库内容的本地副本,JPA需要刷新关联的实体。
我已经尝试在NetBeans生成的AbstractFacade类中添加了几种方法:
public abstract class AbstractFacade {
private Class entityClass;
private String entityName;
private static boolean _refresh = true;
public static void refresh() { _refresh = true; }
public AbstractFacade(Class entityClass) {
this.entityClass = entityClass;
this.entityName = entityClass.getSimpleName();
}
private void doRefresh() {
if (_refresh) {
EntityManager em = getEntityManager();
em.flush();
<