重启我有,它是通过网络使用多个用户共享同一个的MySQL数据库的应用程序。所以我们需要在数据库发生变化时使用简单的刷新可以看到更改。在我的MySQL数据库synchronisaton需要我的Java应用程序
我正在与EclipseLink(具有缓存配置为默认值)。 实际上,第二个用户(想要捕捉第一个用户所做的更改)必须重新启动应用程序(由Netbeans创建)。
UPDATE:
这里是我的的persistence.xml配置。
重启我有,它是通过网络使用多个用户共享同一个的MySQL数据库的应用程序。所以我们需要在数据库发生变化时使用简单的刷新可以看到更改。在我的MySQL数据库synchronisaton需要我的Java应用程序
我正在与EclipseLink(具有缓存配置为默认值)。 实际上,第二个用户(想要捕捉第一个用户所做的更改)必须重新启动应用程序(由Netbeans创建)。
UPDATE:
这里是我的的persistence.xml配置。
有可能是在你的applicaltion一些高速缓存保存从数据库中检索到的previus值 - 所以要调用的SQL不会DB,但是从你的应用程序的本地缓存返回结果。根据您的持久性配置,请查看文档如何禁用缓存 - 它可能位于ORM级别。
从文件资料的EclipseLink,如何禁用缓存:
默认的EclipseLink使共享对象缓存从数据库中读取,避免反复访问数据库高速缓存中的对象。如果直接通过JDBC或其他应用程序或服务器更改数据库,则共享缓存中的对象将过时。
的EclipseLink提供了几种机制来处理陈旧的数据,包括:
Refreshing
Invalidation
Optimistic locking
Cache coordination
共享缓存也被禁用。
<property name="eclipselink.cache.shared.default" value="false"/>
或者,JPA 2.0持久性单元元件:这可以使用的EclipseLink持久性单元属性来完成
@Entity
@Cache(isolation=ISOLATED)
public class Employee {
...
}
:
<shared-cache-mode>NONE</shared-cache-mode>
,或者可以使用@Cache注释被选择性地启用/禁用
或者JPA 2.0 @Cacheable注解:
@Entity
@Cacheable(false)
public class Employee {
...
}
不要通过将CacheType设置为None来禁用缓存,这可能导致对象身份问题。
朋友,我做了一些更新 - >我的缓存被禁用 –
是其他机器上的缓存,你的朋友正在使用也将被禁用? –
它是安装在两台机器上的可执行文件 –