众所周知,可以将Hibernate缓存用于后续查询中使用的实体。我的问题是,这些缓存实体在以这种方式放入缓存之后是不可变的:
a)从DB
加载实体b)在注释可缓存时,Hibernate将这些实体放在缓存中
c)DAO接收加载的对象
d)DAO操纵该实体的某些属性(比如解密一些加密字段),但将更改标记为“不相关的缓存”e)对于后续查询,Hibernate缓存返回始终缓存和操作的实体。
我希望这个愿望清单不是天真的,但我认为,对于基于Spring / Hibernate的现代应用程序来说,这些是非常正常的要求。
答案 0 :(得分:0)
二级缓存不包含实体。它包含Hibernate从数据库表加载的数据行。每次从缓存加载实体时,都会根据缓存中的数据构造实体的新实例,就像它来自数据库一样。
实体的瞬态字段不存储在缓存中。