1

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

a) 从数据库加载实体

b) 当注解可缓存时,Hibernate 将这些实体放入缓存中

c) DAO 接收加载的对象

d) DAO 操作该实体的某些属性(例如解密某些加密字段),但将更改标记为“与缓存无关”

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

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

4

1 回答 1

0

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

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

于 2012-05-25T17:35:32.280 回答