변경된 버전의 jar파일을 http://hibernate.org/orm/downloads/ 혹은 maven에서 다운로드 후

hibernate.xml 설정을 변경 합니다.


3버전

<bean id="sessionFactory"

        class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">

4버전

<bean id="sessionFactory"

        class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">


3버전

<bean id="transactionManager"

        class="org.springframework.orm.hibernate3.HibernateTransactionManager">

        <property name="sessionFactory" ref="sessionFactory" />

    </bean>


4버전

<bean id="transactionManager"

        class="org.springframework.orm.hibernate4.HibernateTransactionManager">

        <property name="sessionFactory" ref="sessionFactory" />

    </bean>


web.xml 설정을 변경 합니다.

3버전

<filter>

   <filter-name>openSessionInViewFilter</filter-name>

   <filter-class>

        org.springframework.orm.hibernate3.support.OpenSessionInViewFilter

    </filter-class>

  </filter>

  <filter-mapping>

    <filter-name>openSessionInViewFilter</filter-name>

    <url-pattern>/*</url-pattern>

  </filter-mapping>


4버전

<filter>

   <filter-name>openSessionInViewFilter</filter-name>

   <filter-class>

        org.springframework.orm.hibernate4.support.OpenSessionInViewFilter

    </filter-class>

  </filter>

  <filter-mapping>

    <filter-name>openSessionInViewFilter</filter-name>

    <url-pattern>/*</url-pattern>

  </filter-mapping>


으로 변경 합니다.

하이버네이트 4.2 까지는 스프링 3. 버전까지를 지원 하지만 하이버네이트 4.3 버전 부터는 하이버 네이트 버전도 4. 으로 변경 해야 합니다.


web.xml의 openSessionInViewFilter를 변경 하지 않는 경우 

java.lang.NoSuchMethodError: org.hibernate.SessionFactory.openSession()Lorg/hibernate/classic/Session;

에러가 발생 할 수 있습니다.

jdk 1.5로 커파일한 class파일로 구동을 시도하는 경우 역시 SessionFactory.currentSession()관련 에러가 발생 됩니다.


다운받는 zip파일의 /lib/required/ 하위의 jar파일은 가능하면 버전을 맞춰 주는게 좋습니다.

javassist.jar파일의 버전 문제로 정상 동작 안 할 수 있습니다.

반응형
Posted by 질주하는구
,