java jdbc查询对hibernate二级缓存有什么影响?我可以触发特定缓存区域的缓存刷新吗 1 年,2 月 Questions & Answers 204 我有一个更新表的jdbc更新查询。在hibernate中为同一个表维护实体缓存。我需要告诉hibernate刷新由jdbc查询更新的实体的缓存区域
# 1 楼答案 你在找 sessionFactory.getCache().evictEntityRegion(MyEntity.class) 这将从缓存中删除过时的条目。但是,如果您在JDBC更新之前这样做,在这个失效和JDBC更新之间的窗口中,缓存可以通过并发读取再次填充,因此如果您的应用程序没有停止所有数据库访问,您可能会得到一些过时的条目 更新后的另一次区域逐出可能会解决问题,但在JDBC查询和区域逐出之间,缓存中的数据很容易再次不一致
# 1 楼答案
你在找
这将从缓存中删除过时的条目。但是,如果您在JDBC更新之前这样做,在这个失效和JDBC更新之间的窗口中,缓存可以通过并发读取再次填充,因此如果您的应用程序没有停止所有数据库访问,您可能会得到一些过时的条目
更新后的另一次区域逐出可能会解决问题,但在JDBC查询和区域逐出之间,缓存中的数据很容易再次不一致