[SPRING] Spring 3.1, Hibernate 4, SessionFactory
SPRINGSpring 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.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.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.이 구성 사용
이 구성 사용
최대 절전 모드 구성 파일 :
<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.나는 두 가지를 바꿔야했다. 여기에 우리가 간다.
나는 두 가지를 바꿔야했다. 여기에 우리가 간다.
내 트랜잭션 관리자에서 3 -> 4 :
org.springframework.orm.hibernate4.HibernateTransactionManager;
그리고 내 sessionFactory이 (덕분에 @ 톡신) :
<bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"
-
==============================
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.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를 참조하십시오.
from https://stackoverflow.com/questions/8565051/spring-3-1-hibernate-4-sessionfactory by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] JBoss의 서블릿에서 Spring 빈에 접근하기 (0) | 2018.12.17 |
---|---|
[SPRING] 주석으로 봄 mvc 3 헤더 없음 캐시를 설정하는 방법 (0) | 2018.12.17 |
[SPRING] Mockito : 실제 개체를 전용 @Autowired 필드로 주입합니다. (0) | 2018.12.16 |
[SPRING] property-placeholder에 의해 생성 된 속성에 대한 프로그래밍 방식의 액세스 (0) | 2018.12.16 |
[SPRING] Spring의 "자동 프록시를 사용할 수 없음"원인 추적 (0) | 2018.12.16 |