标签:hibernate缓存
工程导入commons-logging.jar|ehcache.jar
在hibernate.cfg.xml中设置:添加2个属性: <!--二级缓存 --> <property name="cache.use_second_level_cache">true</property> <property name="cache.provider_class"> org.hibernate.cache.EhCacheProvider </property>
在hibernate完整jar包文件中的/project/etc/ehcache.xml ,把它放到工程src目录下,进行具体的缓存设置
在实体类注解或实体映射文件中配置: <class name="org.java02.entity.User" table="USER_SMBMS"> <cache usage="read-only"/><!-- 加入缓存 --> <id name="userid" column="USERID" type="java.lang.Integer">。…… <set name="house"> <cache usage="read-only"/><!-- 关联映射加入缓存 -->
注解:@cache(...)
二级缓存的并发访问策略:
read-only: 只读型,缓存不更新,适用于不发生改变的
数 据,效率最高,事务隔离级别最低
nonstrict-read-write: 不严格读写型,缓存不定期更新,
适用于变化频率低的数据,对于极少被修改,并 且
允许偶尔脏读的数据,可以采用这种并发访问策略
read-write: 读写型,缓存在数据变化时触发更新,适于
经常被读但很少修改的数据,可以防止脏读
Transactional: 支持事务,效率最低,事务隔离级别最
高,可以防止脏读和不可重复读
hibernate一级缓存,数据只能在一个会话(一个用户)使用,二级缓存使数据可以共享。
标签:hibernate缓存
原文地址:http://11947917.blog.51cto.com/11937917/1883872