MySql数据库中的同步需要重新启动Java应用程序
我有一个应用程序,它由多个用户通过网络共享同一MySQL数据库使用。因此,我们需要当一个对数据库进行更改时,另一个通过简单的刷新可以看到更改 我正在使用EclipseLink(缓存配置为默认设置)。 实际上,第二个用户(想要捕获第一个用户所做的更改)必须重新启动应用程序(由Netbeans创建) 更新: 下面是my persistence.xml中的配置MySql数据库中的同步需要重新启动Java应用程序,java,mysql,jpa,eclipselink,Java,Mysql,Jpa,Eclipselink,我有一个应用程序,它由多个用户通过网络共享同一MySQL数据库使用。因此,我们需要当一个对数据库进行更改时,另一个通过简单的刷新可以看到更改 我正在使用EclipseLink(缓存配置为默认设置)。 实际上,第二个用户(想要捕获第一个用户所做的更改)必须重新启动应用程序(由Netbeans创建) 更新: 下面是my persistence.xml中的配置 应用程序中可能有一些缓存保存从DB检索到的previus值,因此您调用的sql不会进入DB,而是从应用程序的本地缓存返回结果。根据您的持久性配
应用程序中可能有一些缓存保存从DB检索到的previus值,因此您调用的sql不会进入DB,而是从应用程序的本地缓存返回结果。根据您的持久性配置,查看如何禁用缓存的文档-它可能在ORM级别 从EclipseLink文档中,如何禁用缓存: 默认情况下,EclipseLink启用共享对象缓存来缓存从数据库读取的对象,以避免重复访问数据库。如果直接通过JDBC或其他应用程序或服务器更改数据库,则共享缓存中的对象将过时 EclipseLink提供了几种处理过时数据的机制,包括:
Refreshing
Invalidation
Optimistic locking
Cache coordination
还可以禁用共享缓存。这可以使用EclipseLink持久性单元属性完成:
<property name="eclipselink.cache.shared.default" value="false"/>
或JPA 2.0@Cacheable注释:
@Entity
@Cache(isolation=ISOLATED)
public class Employee {
...
}
@Entity
@Cacheable(false)
public class Employee {
...
}
不要通过将CacheType设置为None来禁用缓存,这可能会导致对象标识问题 您的应用程序中可能有一些缓存保存从DB检索到的previus值,因此您调用的sql不会进入DB,而是从应用程序的本地缓存返回结果。根据您的持久性配置,查看如何禁用缓存的文档-它可能在ORM级别 从EclipseLink文档中,如何禁用缓存: 默认情况下,EclipseLink启用共享对象缓存来缓存从数据库读取的对象,以避免重复访问数据库。如果直接通过JDBC或其他应用程序或服务器更改数据库,则共享缓存中的对象将过时 EclipseLink提供了几种处理过时数据的机制,包括:
Refreshing
Invalidation
Optimistic locking
Cache coordination
还可以禁用共享缓存。这可以使用EclipseLink持久性单元属性完成:
<property name="eclipselink.cache.shared.default" value="false"/>
或JPA 2.0@Cacheable注释:
@Entity
@Cache(isolation=ISOLATED)
public class Employee {
...
}
@Entity
@Cacheable(false)
public class Employee {
...
}
不要通过将CacheType设置为None来禁用缓存,这可能会导致对象标识问题 您朋友正在使用的另一台计算机上的缓存是否也被禁用?它是安装在两台计算机上的可执行文件?您朋友正在使用的另一台计算机上的缓存是否也被禁用?它是安装在两台计算机上的可执行文件