Hibernate Cache中的可变实体

时间:2012-05-25 13:24:56

标签: hibernate caching

众所周知,可以将Hibernate缓存用于后续查询中使用的实体。我的问题是,这些缓存实体在以这种方式放入缓存之后是不可变的:

a)从DB

加载实体

b)在注释可缓存时,Hibernate将这些实体放在缓存中

c)DAO接收加载的对象

d)DAO操纵该实体的某些属性(比如解密一些加密字段),但将更改标记为“不相关的缓存”

e)对于后续查询,Hibernate缓存返回始终缓存和操作的实体。

我希望这个愿望清单不是天真的,但我认为,对于基于Spring / Hibernate的现代应用程序来说,这些是非常正常的要求。

1 个答案:

答案 0 :(得分:0)

二级缓存不包含实体。它包含Hibernate从数据库表加载的数据行。每次从缓存加载实体时,都会根据缓存中的数据构造实体的新实例,就像它来自数据库一样。

实体的瞬态字段不存储在缓存中。