




已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
hibernate4 二级缓存demo实例hibernate使用版本是:hibernate-release-4.2.5.Final需要的jar包:hibernate-release-4.2.5.Finallibrequired下所有jar包ehcache jar包:hibernate-release-4.2.5.Finalliboptionalehcache下所有包junit:junit-4.10.jar和mysql-connector-java-5.1.15-bin.jar注:hibernate 4.2.5版本ehcache缓存不依赖commons-logging-1.1.1.jar,需要的是slf4j-api-1.6.1.jar项目结构如下hibernate.cfg.xml com.mysql.jdbc.Driver jdbc:mysql:/:3306/hibernate4 root root 1 org.hibernate.dialect.MySQL5Dialect thread !-ernal.NoCacheProvider - true org.hibernate.cache.ehcache.EhCacheRegionFactory !- org.hibernate.cache.EhCacheProvider - true true update 注意:hibernate4和hibernate3配置不一样,hibernate4是org.hibernate.cache.ehcache.EhCacheRegionFactory 而hibernate3的配置是org.hibernate.cache.EhCacheProvider 此处有一个疑问是:hibernate4的官方文档中,已经把class改了,但是属性名称没有改,还是vider_class,不是上面的hibernate.cache.region.factory_class,但是写成vider_class会报下面错误 org.hibernate.service.spi.ServiceException: Unable to create requested service org.hibernate.engine.spi.CacheImplementor at ernal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:186) at ernal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:150) at ernal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:131) at ernal.SessionFactoryImpl.(SessionFactoryImpl.java:264) at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1790) at com.test.pojo.UserTest.beforeClass(UserTest.java:28) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:45) at ernal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:42) at ernal.runners.statements.RunBefores.evaluate(RunBefores.java:27) at org.junit.runners.ParentRunner.run(ParentRunner.java:300) at ernal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:46) at ernal.junit.runner.TestExecution.run(TestExecution.java:38) at ernal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467) at ernal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683) at ernal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390) at ernal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)Caused by: org.hibernate.cache.NoCacheRegionFactoryAvailableException: Second-level cache is used in the application, but property hibernate.cache.region.factory_class is not given, please either disable second level cache or set correct region factory class name to property hibernate.cache.region.factory_class (and make sure the second level cache provider, hibernate-infinispan, for example, is available in the classpath). at ernal.NoCachingRegionFactory.buildTimestampsRegion(NoCachingRegionFactory.java:87) at org.hibernate.cache.spi.UpdateTimestampsCache.(UpdateTimestampsCache.java:62) at ernal.CacheImpl.(CacheImpl.java:72) at org.hibernate.engine.spi.CacheInitiator.initiateService(CacheInitiator.java:40) at org.hibernate.engine.spi.CacheInitiator.initiateService(CacheInitiator.java:35) at ernal.SessionFactoryServiceRegistryImpl.initiateService(SessionFactoryServiceRegistryImpl.java:91) at ernal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:176) . 20 more 说是hibernate.cache.region.factory_class属性没有配置,估计官方文档里没有把属性改过来。 ehcache.xml User实体类package com.test.pojo;import javax.persistence.Entity;import javax.persistence.GeneratedValue;import javax.persistence.GenerationType;import javax.persistence.Id;import org.hibernate.annotations.Cache;import org.hibernate.annotations.CacheConcurrencyStrategy;EntityCache(usage=CacheConcurrencyStrategy.READ_WRITE)public class User Id GeneratedValue(strategy=GenerationType.IDENTITY) private int id; private String name; private int age; public int getId() return id; public void setId(int id) this.id = id; public String getName() return name; public void setName(String name) = name; public int getAge() return age; public void setAge(int age) this.age = age; UserTest测试类:package com.test.pojo;import org.hibernate.HibernateException;import org.hibernate.Session;import org.hibernate.SessionFactory;import org.hibernate.cfg.Configuration;import org.hibernate.service.ServiceRegistry;import org.hibernate.service.ServiceRegistryBuilder;import org.junit.BeforeClass;import org.junit.Test;public class UserTest private static SessionFactory sessionFactory = null; BeforeClass public static void beforeClass() Configuration configuration = new Configuration(); try configuration.configure(); catch (HibernateException e) / TODO Auto-generated catch block e.printStackTrace(); ServiceRegistry serviceRegistry = new ServiceRegistryBuilder().applySettings(configuration.getProperties().buildServiceRegistry(); sessionFactory = configuration.buildSessionFactory(serviceRegistry); Test public void testEhcache() Session session = sessionFactory.openSession(); session.beginTransaction(); User u1 = (User) session.load(User.class, 3); System.out.println(u1.getName(); session.getTransaction().commit(); session.close(); Session session2 = sessionFactory.openSession(); session2.beginTransaction(); User u2 = (User) session2.load(User.class, 3); System.out.println(u2.getName(); session2.getTransaction().commit(); session2.close(); 结果:Hibernate: select user0_.id as id1_0_0_, user0_.age as age2_0_0_, user0_.name as name3_0_0_ from User user0_ where user0_.id=?zhangsanzhangsan list二级缓存测试package com.test.pojo;import java.util.List;import org.hibernate.HibernateException;import org.hibernate.Session;import org.hibernate.SessionFactory;import org.hibernate.cfg.Configuration;import org.hibernate.service.ServiceRegistry;import org.hibernate.service.ServiceRegistryBuilder;import org.junit.BeforeClass;import org.junit.Test;public class UserTest private static SessionFactory sessionFactory = null; BeforeClass public static void beforeClass() Configuration configuration = new Configuration(); try configuration.configure(); catch (HibernateException e) / TODO Auto-generated catch block e.printStackTrace(); ServiceRegistry serviceRegistry = new ServiceRegistryBuilder().applySettings(configuration.getProperties().buildServiceRegistry(); sessionFactory = configuration.buildSessionFactory(serviceR
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公路桥梁养护维修计划制定
- 客服热线应答标准与技巧
- 航空地勤服务操作标准与客户沟通技巧
- 车间备件标准化管理流程及操作指南
- 工厂危险作业人员监管制度
- 工业热交换设备设计方案与优化策略
- 地方中学生物学期中测验题
- 小学生假期阅读计划与反馈
- 职场自我鉴定范文模板集
- 2024年员工职业健康安全培训教材
- 涂装技能师考试题及答案
- 2025年烟草专卖局公开遴选面试高分策略及模拟题答案
- 乳制品行业智能化奶源管理与追溯方案
- 医务人员职业道德准则(2025年版)全文培训课件
- 恒瑞医药2023ESG社会责任报告:关注员工成长共建美好家园
- 医院网络信息安全培训
- 《构成设计基础》全套教学课件
- 项目初步验收汇报
- 2025年山东省济宁市电工等级低压电工作业(应急管理厅)真题(含答案)
- otc药品管理办法
- 康复医学科病历书写规范与质量控制
评论
0/150
提交评论