我们在集群中使用Ehcache作为Hibernate的L2缓存。由于我们逐个更新服务器以避免宕机,因此在某些时候,群集中可能有一台服务器运行的是旧版本的代码,另一台则是更新后的版本。休眠 - 集群缓存和更新类版本
我认为这个问题是Ehcache,但我将其缩小到Hibernate。 Hibernate不会缓存整个实体,而是缓存字段值的数组。所以如果你的实体有不同的模式复制到你的缓存中,那么负载就会发生坏事,因为这个数组是盲目复制的。
我无法在Ehcache级别停止此操作。我想在我的实体类上设置serialVersionUID
,但这不适用于那些较低级别的数组。
我该如何向Hibernate表明实体版本已经改变,缓存中的值不应该被加载?