Hibernate缓存

Hibernate框架中提供了很多优化方法,缓存就是其中之一

Hibernate中的缓存特点:

第一类:Hibernate的一级缓存:

(1)Hibernate的一级缓存是默认打开的

(2)Hibernate的一级缓存的适用范围,与session的范围相同,从session创建到session关闭

(3)Hibernate的一级缓存中存储的数据必须是持久态数据

第二类:Hibernate的二级缓存:

现在已近不适用了,用redis代替

一级缓存的特性:

针对持久态数据:

当掉用:User user = session.get(User.class, 1);会先从一级缓存中去取数据,如果一级缓存中没有会从数据库中取,取得数据后见对象放到一级缓存和快照区中

当修改对象时:user.setUsername("hanmeimei");会将一级缓存中的对象进行修改,而快照区中的不会变化,一级缓存和快照区中的内容会自动进行对比,当调用transaction.commit()方法时,如果相同,不会更新数据库,如果不同,会进行数据库的更新。

原文地址:https://www.cnblogs.com/lubolin/p/7763486.html