EJB和JPA:在重新启动服务器之前,数据库上的更新不会显示在页面上

时间:2011-03-15 14:37:28

标签: jpa-2.0 java-ee-6 glassfish-3 ejb-3.1

我用EJB和JPA2构建了一个应用程序。如果我的页面正在运行并且我在数据库中更改某些内容,则它将不会显示在页面上。我尝试过不同的浏览器,浏览器的非缓存会话等。我能看到新数据的唯一方法就是重启glassfish 3.1。我已经完成了调试,显然每次都会建立一个新的列表,但它所获得的数据已经过时了。

这是我的findAll方法。

public List<T> findAll() {
    CriteriaQuery cq = getEntityManager().getCriteriaBuilder().createQuery();
    cq.select(cq.from(entityClass));
    return getEntityManager().createQuery(cq).getResultList();
}

glassfish / ejb上是否有设置告诉它不要缓存数据库?或类似的东西。

只想重申重启Glassfish可以解决问题。直到下一次改变。

1 个答案:

答案 0 :(得分:3)

您还可以为查询提供refresh hint for EclipseLink。它应该有所帮助,并且比完全关闭缓存更精细。