hibernate缓存策略

只读缓存(read-only):没有什么好说的。

读/写缓存(read-write):程序可能要的更新数据。

不严格的读/写缓存(nonstrict-read-write):需要更新数据,但是两个事务更新同一条记录的可能性很小,性能比读写缓存好。

事务缓存(transactional):缓存支持事务,发生异常的时候,缓存也能够回滚,只支持jta环境,这个我没有怎么研究过。

读写缓存和不严格读写缓存在实现上的区别在于,读写缓存更新缓存的时候会把缓存里面的数据换成一个锁,其他事务如果去取相应的缓存数据,发现被锁住了,然后就直接取数据库查询。在Hibernate2.1的ehcache实现中,如果锁住部分缓存的事务发生了异常,那么缓存会一直被锁住,直到60秒后超时。不严格读写缓存不锁定缓存中的数据

 

<property name="hibernate.cache.use_second_level_cache">true</property>

<property name="hibernate.cache.provider_class">org.hibernate.cache.EhCacheProvider</property>

 

<mapping resource="com/ss3/model/Role.hbm.xml" />

<mapping resource="com/ss3/model/Resource.hbm.xml" />

<mapping resource="com/ss3/model/RoleResource.hbm.xml" />

<mapping resource="com/ss3/model/UserRole.hbm.xml" />

<mapping resource="com/ss3/model/User.hbm.xml" />

 

<class-cache class="com.ss3.model.Role" usage="nonstrict-read-write"/>

<class-cache class="com.ss3.model.Resource" usage="nonstrict-read-write"/>

<class-cache class="com.ss3.model.RoleResource" usage="nonstrict-read-write"/>

<class-cache class="com.ss3.model.UserRole" usage="nonstrict-read-write"/>

<class-cache class="com.ss3.model.User" usage="nonstrict-read-write"/>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值