几个缓存相关的Hibernate问题:
- 在 L1 缓存(基于会话的缓存)中,一旦会话关闭,缓存就会被删除/清除。但是使用 L2 缓存(应用程序/全局/分布式缓存),缓存何时被丢弃/清除/清除?有没有办法手动/以编程方式清除/刷新 L2 缓存?
- 您可以为 L2 缓存指定一个
EhCacheCacheProvider
。但是 EhCache 需要ehcache.xml
运行时类路径上的配置文件来配置缓存。Hibernate L2 缓存是否有特定名称可用于微调它们ehcache.xml
? - 如果程序 A 正在使用 Hibernate 管理的实体(某些 POJO 处于持久状态),因此被 Hibernate 主动管理/跟踪,并且单独的应用程序(程序 B)更新了相同的记录 - Hibernate 是否会自动更新 in-记忆 POJO?例如,我的
fizz.war
Web 应用程序正在连接到 MySQL 服务器并正在管理一个持久User
实例(对应users
于 MySQL 中的表)。目前,该用户的电子邮件是john.smith@example.com
。然后,同时,buzz.war
(不同的 Web 应用程序)将同一users
记录的电子邮件更新为jane.smith@example.com
. Hibernate 会自动更新User
实例以包含更新吗?