zoukankan      html  css  js  c++  java
  • Hibernate4.3.9Final常见问题汇总

    hibernate4下一个可用的hibernate.properties:

    jdbc.driverClassName=com.mysql.jdbc.Driver
    jdbc.url=jdbc:mysql://localhost:3306/hibernate?characterEncoding=UTF-8
    jdbc.username=username
    jdbc.password=password
    
    hibernate.dialect=org.hibernate.dialect.MySQLDialect
    <!-- Enable Hibernate's automatic session context management -->
    #hibernate.current_session_context_class=thread
    hibernate.current_session_context_class=org.springframework.orm.hibernate4.SpringSessionContext
     <!-- start cache query -->  
    hibernate.cache.use_query_cache=true
    hibernate.jdbc.batch_size=50
    <!-- set second level -->  
    hibernate.cache.use_second_level_cache=true
    #hibernate.cache.region.factory_class=org.hibernate.cache.ehcache.EhCacheRegionFactory
    #hibernate.cache.provider_class=org.hibernate.cache.ehcache.EhCacheRegionFactory // hibernate3
    hibernate.cache.provider_class=org.hibernate.cache.spi.RegionFactory
    hibernate.cache.region.factory_class=org.hibernate.cache.ehcache.EhCacheRegionFactory
    
    <!-- Drop and re-create the database schema on startup -->  
    hibernate.hbm2ddl.auto=update
    <!-- Echo all executed SQL to stdout --> 
    hibernate.show_sql=true

    pom.xml中相关配置:

        <properties>
            <hibernate-version>4.3.9.Final</hibernate-version>
            <spring-version>4.1.6.RELEASE</spring-version>
            <mysql-driver-version>5.1.35</mysql-driver-version>
            <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        </properties>

    hibernate.properpties中关于二级缓存的配置:
    hibernate.cache.use_second_level_cache=true
    hibernate.cache.provider_class=org.hibernate.cache.spi.RegionFactory
    hibernate.cache.region.factory_class=org.hibernate.cache.ehcache.EhCacheRegionFactory
    报错信息:
    Caused by: org.hibernate.HibernateException: could not instantiate RegionFactory [org.hibernate.cache.ehcache.EhCacheRegionFactory]
     at org.hibernate.cache.internal.RegionFactoryInitiator.initiateService(RegionFactoryInitiator.java:101)
     at org.hibernate.cache.internal.RegionFactoryInitiator.initiateService(RegionFactoryInitiator.java:46)
     at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.initiateService(StandardServiceRegistryImpl.java:105)
     at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:251)
     ... 80 more
    Caused by: org.hibernate.boot.registry.selector.spi.StrategySelectionException: Unable to resolve name [org.hibernate.cache.ehcache.EhCacheRegionFactory] as strategy [org.hibernate.cache.spi.RegionFactory]
     at org.hibernate.boot.registry.selector.internal.StrategySelectorImpl.selectStrategyImplementor(StrategySelectorImpl.java:128)
     at org.hibernate.cache.internal.RegionFactoryInitiator.initiateService(RegionFactoryInitiator.java:87)
     ... 83 more

    原因及解决办法:
    缺少jar:hibernate-ehcache
    添加:

            <dependency>
                <groupId>org.hibernate</groupId>
                <artifactId>hibernate-ehcache</artifactId>
                <version>${hibernate-version}</version>
            </dependency>



    org.hibernate.HibernateException: save is not valid without active transaction
     at org.hibernate.context.internal.ThreadLocalSessionContext$TransactionProtectionWrapper.invoke(ThreadLocalSessionContext.java:352)
     at com.sun.proxy.$Proxy24.save(Unknown Source)
     at com.xx.dao.BaseDao.save(BaseDao.java:31)

    对于提示*** is not valid without active transaction 的错误
    可以在Hibernate的配置文件中做如下修改
    <prop key="hibernate.current_session_context_class">org.springframework.orm.hibernate4.SpringSessionContext</prop>(Hibernate4)
    对于Hibernate3.x,可以直接把上述设置删除,就不会报错了,具体原因尚不清楚。
    须知:几乎所有正常的操作都必须在transcation.isActive()条件下才能执行。get,load,save, saveOrUpdate,list都属于这类。
    http://blog.csdn.net/wzk527/article/details/8543480

    日志打印:

    增加slf4j的jar,譬如log4j可选择添加slf4j-api.jar和slf4j-log4j12.jar

  • 相关阅读:
    java项目配置域名(tomcat直接配置 or 使用nginx反向代理)
    java爬虫学习
    python爬虫
    log4j的日志级别(ssm中log4j的配置)
    Python中list,tuple,dict,set的区别和用法
    [转]C# Eval在asp.net中的用法及作用
    【转】一个运维经理的运维经验总结
    [转]使用 LVS 实现负载均衡原理及安装配置详解
    [转]33个网站足以使你成为一个天才
    搜狐邮箱想说爱你不容易!
  • 原文地址:https://www.cnblogs.com/softidea/p/4492252.html
Copyright © 2011-2022 走看看