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条)

报告相同问题?

悬赏问题

  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable
  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)