복붙노트

[SPRING] Spring 3.1, Hibernate 4, SessionFactory

SPRING

Spring 3.1, Hibernate 4, SessionFactory

이것은 작동했다 :

<bean id="sessionFactory"  
      class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
...

앞서 언급 한 버전으로 업그레이드하면 문제가 해결됩니다. Spring 3.1.Release 및 Hibernate 4.0.0.FINAL을 사용하여 SessionFactory 빈을 만드는 올바른 방법은 무엇입니까?

배포시 오류는 다음과 같습니다.

편집하다 내 자신의 대답을 추가했는데 나를 위해 그것을 고쳤다.

해결법

  1. ==============================

    1.org.springframework.orm.hibernate4.LocalSessionFactoryBean 대신에 사용해야한다고 생각합니다. org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean

    org.springframework.orm.hibernate4.LocalSessionFactoryBean 대신에 사용해야한다고 생각합니다. org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean

    LocalSessionFactoryBean에서 javadoc :

  2. ==============================

    2.Hibernate 4는 이전에 릴리스 된 RegionFactory 관련 캐시 인터페이스를 위해 비추천 CacheProvider 관련 인터페이스와 클래스를 제거했다. 버전 4 캐시 패키지 요약은 여기 (RegionFactory 인터페이스가 추가되기 직전) 및 버전 3.3 캐시 패키지 요약 (RegionFactory가 처음 출시되었을 때)에서 확인할 수 있습니다.

    Hibernate 4는 이전에 릴리스 된 RegionFactory 관련 캐시 인터페이스를 위해 비추천 CacheProvider 관련 인터페이스와 클래스를 제거했다. 버전 4 캐시 패키지 요약은 여기 (RegionFactory 인터페이스가 추가되기 직전) 및 버전 3.3 캐시 패키지 요약 (RegionFactory가 처음 출시되었을 때)에서 확인할 수 있습니다.

    JavaDoc 외에도 다음과 같은 문서가 유용 할 수 있습니다.

    그러나 Spring 3.1 의존성을 기반으로 Spring 3.1은 Hibernate 4를 필요로하지 않는다 (Full Dependencies 섹션 아래, JBoss Hibernate Object-Relational Mapper는 버전 3.3.2.GA에 있음). Hibernate 4로 업그레이드하려면 캐시 설정을 업데이트해야합니다. 그렇지 않으면, Hibernate 3.3.2 또는 그 이상 버전 3.X를 대신 사용해보십시오.

    갱신 : Spring 3.1의 Hibernate 4 문서는 현재 드문 드문 한 점을 기억하십시오. Spring Framework 레퍼런스 문서는 Hibernate 4.x 지원에 대해서만 다음을 가지고있다 :

    See Javadoc for classes within the new org.springframework.orm.hibernate4 package
    

    Spring 3.1은 Hibernate의 Configuration을 확장 한 LocalSessionFactoryBuilder를 소개한다.

    Hibernate 4를 사용하기를 원한다면 다른 변화에주의를 기울여야한다.

    업데이트 2 :이 질문은 CacheProvider에 대한 Exception NoClassDefFoundError의 가까운 복제본입니다.

  3. ==============================

    3.이 구성 사용

    이 구성 사용

    최대 절전 모드 구성 파일 :

    <bean id="sessionFactory"
        class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
    </bean>
    
    <bean id="transactionManager"
        class="org.springframework.orm.hibernate4.HibernateTransactionManager">
        <property name="sessionFactory" ref="sessionFactory" />
    </bean>
    

    POM :

        <!-- CGLIB -->
        <dependency>
            <groupId>cglib</groupId>
            <artifactId>cglib</artifactId>
            <version>${cglib-version}</version>
            <scope>runtime</scope>
        </dependency>
    
        <!-- Hibernate -->
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-entitymanager</artifactId>
            <version>${org.hibernate-version}</version>
            <!-- will come with Hibernate core -->
        </dependency>
    
        <!-- Spring -->
       <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-orm</artifactId>
            <version>${org.springframework-version}</version>
        </dependency>
    

    나는 버전을 포함하는 것을 잊었다, 나는 최대 절전 모드 버전을 사용하고있다 : 4.1.2. 최종 및 봄 버전 : 3.1.1.RELEASE, 최대 절전 모드 4.1.3의 최종 업데이트가있다. 테스트되지 않았지만 정상적으로 작동 할 것이라고 믿는다.

  4. ==============================

    4.나는 두 가지를 바꿔야했다. 여기에 우리가 간다.

    나는 두 가지를 바꿔야했다. 여기에 우리가 간다.

    내 트랜잭션 관리자에서 3 -> 4 :

    org.springframework.orm.hibernate4.HibernateTransactionManager;
    

    그리고 내 sessionFactory이 (덕분에 @ 톡신) :

    <bean id="sessionFactory"
            class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"
    
  5. ==============================

    5.

    org.springframework.orm.hibernate4.LocalSessionFactoryBean
    

    예 :

    <bean id="sessionFactory" 
          class="org.springframework.orm.hibernate5.LocalSessionFactoryBean">
        ...
    </bean>
    

    http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/orm/hibernate4/LocalSessionFactoryBean.html을 참조하십시오.

    org.springframework.orm.hibernate5.LocalSessionFactoryBean
    

    (http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/orm/hibernate5/LocalSessionFactoryBean.html 참조)

  6. ==============================

    6.Spring 3.1과 Hibernate 4는 많은면에서 호환되지 않는다. 다음 Spring JIRA https://jira.springsource.org/browse/SPR-9365를 참조하십시오.

    Spring 3.1과 Hibernate 4는 많은면에서 호환되지 않는다. 다음 Spring JIRA https://jira.springsource.org/browse/SPR-9365를 참조하십시오.

  7. from https://stackoverflow.com/questions/8565051/spring-3-1-hibernate-4-sessionfactory by cc-by-sa and MIT license