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