2011-04-06 2 views

답변

0

마지막으로 해결책을 찾았습니다. @PersistenceContext를 사용하지 않고 Spring에 EntityManager를 삽입 할 수있다. 공유 FactoryItem을 생성하기위한 Spring factorybean이 있습니다. 엔티티 관리자 공장을 감안할 때 : 글래스 피시는 조회 및 EntityManager를 속성으로 하나의 엔티티 관리자를 주입하지 않도록

<bean id="entityManager" class="org.springframework.orm.jpa.support.SharedEntityManagerBean"> 
    <property name="entityManagerFactory" ref="entityManagerFactory" /> 
</bean> 
<bean id="myJpaFacade" class="com.example.MyJpaFacade"> 
    <property name="entityManager" ref="entityManager" /> 
</bean> 

는 지금은 MyJpaFacade에서 @PersistenceContext 주석을 제거 할 수 있습니다.

+0

또 다른 이점은 엔티티 bean 또는 persistence.xml이 변경된 경우 JRebel이 이제는 새로운 EntityManager를 다시 주입하는 것이 훨씬 더 효율적이라는 것입니다. –

0

봄 글래스 피쉬-web.xml 파일에 구성하는 것입니다. 코드의 몇 가지 예제가 없으면 더 이상 진행하기가 어렵습니다.

DI가 꺼지는 것이 아닙니다 ... 컨테이너의 일부이므로 걱정하지 않는 특수 효과를 사용해야합니다.

+0

@PersistenceContext는 Spring에서 삽입되는 문제입니다. 나는 Spring 대안이 아닌 JEE가 아닌 것을 찾을 수 없었다. –

+0

@ javax.persistence.PersistenceContext와 같은 전체 패키지 이름을 사용하십시오. Private EntityManager em; – Preston

+0

@PersistenceContext EntityManager em의 차이점을 보지 못했습니다. (자바 파일의 상단에 가져 오기가 있음) 및 @ javax.persistence.PersistenceContext private EntityManager em; 둘 다 실패한 글래스 피시와 글래스 피쉬가 나가면 성공할 수있는 스프링 구성 파일에서 주입됩니다. –