【发布时间】:2011-12-18 04:11:30
【问题描述】:
我正在使用带有 Ehcache 的 Hibernate(不认为这很重要)..
当用户登录时,我通过他的电子邮件识别他,并使用他的电子邮件进行所有后续呼叫。
现在,由于电子邮件不是我的“休眠 ID”(我用 @Id 注释的那个),我必须使用查询加载它,因此将其存储在查询缓存中。但是,当用户注销时,我无法明确地将他从缓存中逐出,因为他存储在与其他已登录用户共享的区域内。
我的问题是:我可以将用户加载到二级缓存中(从而使驱逐更容易),而无需使用session().get(user) 方法再次访问数据库吗?
这里还有一点,如果用户被更新,查询缓存对于这个用户来说是错误的。我希望在更新用户时更新它
【问题讨论】:
标签: hibernate second-level-cache query-cache