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 可以解决问题。当然,直到下一次改变。

4

1 回答 1

3

您还可以为查询提供EclipseLink 的刷新提示。它应该有帮助,并且比完全关闭缓存更细粒度。

于 2011-03-20T09:23:38.980 回答