Java 如果数据库中的数据在捕获时间内更新,如何在hibernate中处理?

Java 如果数据库中的数据在捕获时间内更新,如何在hibernate中处理?,java,hibernate,ehcache,Java,Hibernate,Ehcache,我使用的是hibernate二级缓存机制(ehcache)。我给了10秒作为缓存时间,如下所示 <cache name="employee" maxEntriesLocalHeap="10000" eternal="false" timeToIdleSeconds="10" timeToLiveSeconds="10"> <persistence strategy="localTempSwap"/> </cache> 如果假设数据库

我使用的是hibernate二级缓存机制(ehcache)。我给了10秒作为缓存时间,如下所示

<cache name="employee" maxEntriesLocalHeap="10000" eternal="false"
       timeToIdleSeconds="10" timeToLiveSeconds="10">
    <persistence strategy="localTempSwap"/>
</cache>


如果假设数据库中的数据在10秒缓存时间内更新,我将获得最新数据还是捕获数据?如何处理这种情况?

由于您使用的缓存配置了生存时间和空闲时间,因此只要该条目至少每10秒访问一次,它就会在缓存中保持有效

鉴于您所描述的情况,我强烈建议不要使用TTI,因为这一点

至于更一般的答案:一旦激活缓存,就会打开一个不一致的窗口。如果您的应用程序逻辑无法处理它,那么您需要设置一个立即失效机制,该机制将急切地从缓存中刷新条目

然而,没有标准的方法来做到这一点,因此它成为你的责任