使用Java在Hibernate中使用Ehcache获取最新数据

时间:2016-02-26 04:13:31

标签: java hibernate ehcache

我想知道为什么每当我在数据库中更改内容时Ehcache都会获取最新数据。根据Ehcache的文档,它应该只在一定的时间间隔后获取。我对么?

这是我的ehcache.xml

tegdub (the reverse of the part after the hyphen)

我的实体类

<?xml version="1.0"?>  
<ehcache>  
 <defaultCache   
  maxElementsInMemory="100"   
  eternal="false"   
  timeToIdleSeconds="120"   
  timeToLiveSeconds="200" />  

  <cache name="com.sch.Employee"   
  maxElementsInMemory="100"   
  eternal="false"   
  timeToIdleSeconds="5"   
  timeToLiveSeconds="200" />  
 </ehcache>  

我的理解是否正确?如果没有,EHcache的幕后操作到底是什么?

1 个答案:

答案 0 :(得分:1)

TTITTL是决定驱逐程序的人。

timeToIdleSeconds – The maximum number of seconds an element can exist in the cache without being accessed. The element expires at this limit and will no longer be returned from the cache. The default value is 0, which means no TTI eviction takes place (infinite lifetime).

timeToLiveSeconds – The maximum number of seconds an element can exist in the cache regardless of use. The element expires at this limit and will no longer be returned from the cache. The default value is 0, which means no TTL eviction takes place (infinite lifetime).

Source

根据定义的定义,您拥有员工的秒数

 <cache name="com.sch.Employee"   
  maxElementsInMemory="100"   
  eternal="false"   
  timeToIdleSeconds="5"   
  timeToLiveSeconds="200" />

如果您在部署后5秒内未访问员工记录,则会从数据库中提取。

任何方式,甚至TTL都是200秒,这与使用无关。

所以制作TTL - 0,TTI - 3600并重新测试应用程序。

这样,TTL驱逐不会发生,TTI是一小时,所以你有时间测试你的应用程序