atojaoomy 2012-02-27 10:08
浏览 319
已采纳

hibernate4.0.1使用二级缓存,出现NoCachingEnabledException: Second-level cache is not enab

在hibernate.cfg.xml中添加了

true
org.hibernate.cache.internal.OSCacheProvider
jar包也引入了。

在映射文件配置也添加了:

在hibernate3.3.2中使用2级缓存,是可以正常使用,但不知为何

在hibernate4.0.1中同样配置会出现:

Caused by: org.hibernate.cache.NoCachingEnabledException: Second-level cache is not enabled for usage [hibernate.cache.use_second_level_cache | hibernate.cache.use_query_cache]
at org.hibernate.cache.internal.NoCachingRegionFactory.buildEntityRegion(NoCachingRegionFactory.java:68)
at org.hibernate.internal.SessionFactoryImpl.(SessionFactoryImpl.java:339)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1737)
at com.hejian.hibernate.domain.util.HibernateUtil.buildSessionFactory(HibernateUtil.java:18)
... 3 more

求解。

  • 写回答

3条回答 默认 最新

  • tianshilang 2012-02-27 16:59
    关注

    我不太清楚 hibernate3.2 根据3.5.5源码来分析
    你的属性名写错了
    cache.provider_class
    应为
    hibernate.cache.region.factory_class

    导致SettingFactory找不到该属性,而是用模式的NoCachingRegionFactory

    但是目前有一个疑问:
    [code="java"]
    if ( accessStrategy == null && settings.isSecondLevelCacheEnabled() ) {
    final AccessType accessType = AccessType.parse( model.getCacheConcurrencyStrategy() );
    if ( accessType != null ) {
    log.trace( "Building cache for entity data [" + model.getEntityName() + "]" );
    EntityRegion entityRegion = settings.getRegionFactory().buildEntityRegion( cacheRegionName, properties, CacheDataDescriptionImpl.decode( model ) );

    [/code]

    如果use_second_cache 也不能正常获取 不应该调用buildEntityRegion

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 乘性高斯噪声在深度学习网络中的应用
  • ¥15 运筹学排序问题中的在线排序
  • ¥15 关于docker部署flink集成hadoop的yarn,请教个问题 flink启动yarn-session.sh连不上hadoop,这个整了好几天一直不行,求帮忙看一下怎么解决
  • ¥30 求一段fortran代码用IVF编译运行的结果
  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥30 python代码,帮调试,帮帮忙吧