Hibernate缓存讨论与研究
另外还需要对ehcache.xml进行配置,这是一个单独的xml文件,示例如下:
ehcache.xml
然后呢,我们还需要在映射文件中指定的映射实体的缓存同步策略(以下只列出核心配置,以供大家参考):<defaultCache
maxElementsInMemory="10000"
//缓存中最大允许创建的对象数
eternal="false"
//缓存中对象是否为永久的,如果是,超时设置将被忽略,对象从不过期
timeToIdleSeconds="120"
//缓存数据钝化时间(设置对象在它过期之前的空闲时间)
timeToLiveSeconds="120"
//缓存数据的生存时间(设置对象在它过期之前的生存时间)
overflowToDisk="true"
//内存不足时,是否启用磁盘缓存
/>
上面提到read-write、read-only是什么?这就是缓存的同步策略,下面我们来仔细的看看Hibernate提供的几钟缓存策略:…………
<class name=”com.tenly.bean.Student”>
<cache usage=”read-write”>
…………
<set name=”classroom”……>
<cache usage=”read-only”>
…………
</set>
</class>
…………
(1) read-only
只读。对于不会发生改变的数据,可使用只读型缓存。
(2)nonstrict-read-write
不严格可读写缓存。如果应用程序对并发访问下的数据同步要求不是很严格的话,而且数据更新操作频率较低。采用本项,可获得良好的性能。
(3) read-write
对于经常被读但很少修改的数据,可以采用这种隔离类型,因为它可以防止脏读这类的并发问题.
(4)transactional(事物型)
在Hibernate中,事务型缓存必须运行在JTA事务环境中。
0
相关文章
