<property name="hibernate.cache.use_second_level_cache">true</property>
<property name="hibernate.cache.provider_class">org.hibernate.cache.EhCacheProvider</property>
前一句是打开二级缓存,后一句是启用第三方缓存产品(可改变,上面eache是hibernate官方默认的第三方缓存产品)
缓存是否实用,要看你的需求,
如果你的系统,浏览的人数比较多,但是增删的比较少,缓存的功劳非常大
如果你的系统即时性非常强,那么缓存的命中率就比较低,同时更新数据时,hibernate需要额外提供资源维护缓存与数据的一致
<propertyname="hibernate.cache.use_second_level_cache">true</property>
<propertyname="hibernate.cache.provider_class">org.hibernate.cache.ehcacheprovider</property>
前一句是打开二级缓存,后一句是启用第三方缓存产品(可改变,上面eache是hibernate官方默认的第三方缓存产品)
缓存是否实用,要看你的需求,
如果你的系统,浏览的人数比较多,但是增删的比较少,缓存的功劳非常大
如果你的系统即时性非常强,那么缓存的命中率就比较低,同时更新数据时,hibernate需要额外提供资源维护缓存与数据的一致
二级缓存可以通过在关联属性中设置lazy="true"即可
前提你设置了级联
是否实用还得看你实际运用,二级缓存其实就是将你查询的数据所关联的其他数据一并查询出来,如果设置为true,那么所其他数据并不是全部也查出来,只是将这些数据的索引拿出来,等你需要的时候再通过索引发送sql语句再查询
如果设置为false,那么其他数据全部都出来,如果数据量大,肯定会造成很大影响
还有你观察一下级联查询如果lazy=false ,sql语句只发一句,但是却把需要的数据跟关联的数据查出来了,因为Hibernate会自动的用左连接帮你把数据一并查询出来,所以数据量少的时候二级缓存反而会造成多次数据库读写
用户登录
还没有账号?立即注册
用户注册
投稿取消
文章分类: |
|
还能输入300字
上传中....