Welcome 微信登录

首页 / 软件开发 / JAVA / hibernate3学习笔记(二十一)|二级缓存

hibernate3学习笔记(二十一)|二级缓存2011-02-03二级缓存及外部缓存,它能够越过数个Session,通过同一个SessionFactory进行管理和维护。

接上例的代码:http://blog.csdn.net/kunshan_shenbin/archive/2008/09/03/2874375.aspx

要使用二级缓存,首先需要对hibernate.cfg.xml文件进行修改:

1.<?xml version="1.0" encoding="utf-8"?>
2.<!DOCTYPE hibernate-configuration PUBLIC
3."-//Hibernate/Hibernate Configuration DTD 3.0//EN"
4."http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
5.
6.<hibernate-configuration>
7.
8.<session-factory>
9.
10.....
11.<property name="hibernate.cache.provider_class">
12.org.hibernate.cache.HashtableCacheProvider
13.</property>
14.....
15.
16.</session-factory>
17.
18.</hibernate-configuration>
HashtableCache是Hibernate自己所提供的二级缓存的实现,但是由于其性能和功能有限,一般只用于开发和测试。

当然我们可以使用第三方的实现,譬如:org.hibernate.cache.EhCacheProvider,这个需要ehcathe.jar包。

修改User.hbm.xml文件:

1.<?xml version="1.0" encoding="utf-8"?>
2.<!DOCTYPE hibernate-mapping
3.PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
4."http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
5.
6.<hibernate-mapping>
7.
8.<class name="com.hb3.pack_21.model.User" table="user">
9.
10.<cache usage="read-write"/>
11.
12.<id name="id" column="id" type="java.lang.Integer">
13.<generator class="native"/>
14.</id>
15.
16.<property name="name" column="name" type="java.lang.String"/>
17.
18.<many-to-one name="room"
19. column="room_id"
20. class="com.hb3.pack_21.model.Room"
21. cascade="save-update"
22. outer-join="true"/>
23.
24.</class>
25.
26.</hibernate-mapping>