技术开发 频道

Hibernate缓存讨论与研究

 
   另外还需要对ehcache.xml进行配置,这是一个单独的xml文件,示例如下:
    ehcache.xml
<defaultCache maxElementsInMemory="10000" //缓存中最大允许创建的对象数 eternal="false" //缓存中对象是否为永久的,如果是,超时设置将被忽略,对象从不过期 timeToIdleSeconds="120" //缓存数据钝化时间(设置对象在它过期之前的空闲时间) timeToLiveSeconds="120" //缓存数据的生存时间(设置对象在它过期之前的生存时间) overflowToDisk="true" //内存不足时,是否启用磁盘缓存 />
然后呢,我们还需要在映射文件中指定的映射实体的缓存同步策略(以下只列出核心配置,以供大家参考):
………… <class name=”com.tenly.bean.Student”> <cache usage=”read-write”> ………… <set name=”classroom”……> <cache usage=”read-only”> ………… </set> </class> …………
    上面提到read-write、read-only是什么?这就是缓存的同步策略,下面我们来仔细的看看Hibernate提供的几钟缓存策略:

    (1) read-only
    只读。对于不会发生改变的数据,可使用只读型缓存。

    (2)nonstrict-read-write
    不严格可读写缓存。如果应用程序对并发访问下的数据同步要求不是很严格的话,而且数据更新操作频率较低。采用本项,可获得良好的性能。

    (3) read-write
    对于经常被读但很少修改的数据,可以采用这种隔离类型,因为它可以防止脏读这类的并发问题.

    (4)transactional(事物型)
    在Hibernate中,事务型缓存必须运行在JTA事务环境中。
0
相关文章