Enviorment -
启用了Hibernate-查询缓存和二级缓存
使用缓存 - 将updatetimestampcache设置为永恒的Ehcache。
问题 - 对于实体E,我在表格中有2行。因此,在使用setcacheable(true)的条件查询(获取所有行)时,首次填充第二级缓存和查询缓存。
通过setcacheable(true)的条件进一步执行相同的查询是从查询缓存中提供的。到目前为止一切都很好。
问题 - 使用休眠保存实体E的新对象(现在实体E的表中没有3行),通过事务服务层方法。 任何进一步查询以获取实体E的行(使用setcacheable(true))仅返回2个对象。在哪里应该返回3个物体。
当新实体保存在其表格中时,似乎未验证实体E的查询缓存。
答案 0 :(得分:-1)
SO这就是我认为的根本原因,它是我的应用程序使用ehcahce的方式。 详情如下
如果应用A确实插入了,那么它只会使自己的ehcache无效。由于其他应用程序应用程序B托管在同一个tomcat中,有自己的ehcahe区域,应用程序b将继续使用陈旧数据。