关于Spring/Hibernate 3.x升级4.x的小问题

情景:java

  以前版本 如今版本
JDK 1.7 1.8
Tomcat v7.0 v8.0
Spring 3.x 4.x
Hibernate 3.x 4.x
MySQL 忘了 5.1.53

分析:spring

若是升级版本错误,就是这几处的问题。sql

问题1:session

我使用Spring3.X --- jdk8----出现了以下问题:app

java.lang.IllegalArgumentException
     org.springframework.asm.ClassReader.<init>(Unknown Source)
     org.springframework.asm.ClassReader.<init>(Unknown Source)
     org.springframework.asm.ClassReader.<init>(Unknown Source)
缘由:Spring3.X --- jdk8不兼容
解决:

  一:把jdk版本换成1.7 or 1.7如下dom

  二:使用spring-4.0-RELEASE及以上版本spa

问题2:hibernate

Spring4.x的事务管理没有起做用。code

解决:(如下是我碰到的问题解决方法,固然还有其它解决方法我没有列出)orm

    <!-- 使用FactoryBean建立Spring获得 SessionFactory -->
    <bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
          <!-- 把hibernate.cfg.xml文件中的配置信息注入进来,从而能够删掉配置文件-->
          <property name="dataSource" ref="dataSource"></property>
          <property name="hibernateProperties">
                  <props>
                      <prop key="hibernate.dialect">org.hibernate.dialect.MySQL5InnoDBDialect</prop>
                      <prop key="javax.persistence.validation.mode">none</prop>
                      <prop key="hibernate.show_sql">true</prop>
                      <prop key="hibernate.format_sql">true</prop>
                      <prop key="hibernate.hbm2ddl.auto">update</prop>
                      <prop key="hibernate.current_session_context_class">org.springframework.orm.hibernate4.SpringSessionContext</prop>
                  </props>
          </property>
          <property name="mappingLocations" value="classpath:king/domain/*.hbm.xml"></property>
    </bean>

①若是你的MySQL的版本改动了,这个属性也可能会随着改动。

缘由:

若是表的类型为MyISAM,则sping里配置的事务是不起做用的,因此要使用InnoDB类型的表,由于这个类型的表才支持事务。

②3.x时这一处咱们都会写thread,4.x要写成SpringSessionContext。

相关文章
相关标签/搜索