比如我有一个 Entity 叫做 User,然后开启了二级缓存,然后查询 id 为1的 User,然后使用 HQL 来更新,然后我再次查询 id 为1的 User,是会返回缓存的内容还是返回数据库中的内容?
如果你用了update语句,那么二级缓存会失效。因为系统无法判断二级缓存的对象哪些失效了。如果你是update(对象)的方式更新,则系统可以通过ID确认哪个二级缓存对象需要更新,系统能够维护二级缓存。
如果你用了update语句,那么二级缓存会失效。因为系统无法判断二级缓存的对象哪些失效了。如果你是update(对象)的方式更新,则系统可以通过ID确认哪个二级缓存对象需要更新,系统能够维护二级缓存。