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