二级缓存及外部缓存,它能够越过数个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 PUBLIC3. "-//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.HashtableCacheProvider13. </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-mapping3. 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>
以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索hibernate
, 文件
, 缓存
, cache
, sessionfactory
二级
,以便于您获取更多的相关知识。
时间: 2024-11-02 11:33:31