Spring 类级别的Ehcache和查询未同步
XMl中类Employee的我的缓存配置Spring 类级别的Ehcache和查询未同步,spring,jpa,caching,ehcache,Spring,Jpa,Caching,Ehcache,XMl中类Employee的我的缓存配置 <cache name="com.model.Employee" maxEntriesLocalHeap="100" overflowToDisk="false" statistics="true" /> <cache name="employees" maxEntriesLocalHeap="1000" overflowToDisk="false" timeToLiveSeconds="60" statis
<cache name="com.model.Employee"
maxEntriesLocalHeap="100" overflowToDisk="false" statistics="true" />
<cache name="employees" maxEntriesLocalHeap="1000" overflowToDisk="false" timeToLiveSeconds="60" statistics="true" />
使用查询缓存,获取员工
@QueryHints({@QueryHint(name = "org.hibernate.cacheable", value = "true"), @QueryHint(name="org.hibernate.cacheRegion", value="employees")})
List<Employee> findAll();
@QueryHints({@QueryHint(name=“org.hibernate.cacheable”,value=“true”),@QueryHint(name=“org.hibernate.cacheRegion”,value=“employees”))
列出findAll();
两个应用程序使用相同的数据库,例如A&B,如果一个应用程序删除员工Id 8,但同时应用程序B可能使用此缓存Id 8
使用当前配置,应用程序B中的employee对象可能会为null
任何解决此问题或改进当前配置的提示都是缓存的概念。你有两个选择:
- 比如有一点过时的值(并根据支持的过时程度配置过期时间)
- 当值过时时从缓存中逐出