2009-07-24 6 views
2

지속성 단위, 코드 또는 주석을 사용하는 두 가지 방법이 있습니다.Java EE5의 구성 가능한 지속성 +

CODE
[...]의 EntityManagerFactory
EMF;
emf = Persistence.createEntityManagerFactory ("SOMEPU");
[...]

또는

ANNOTATION
[...]
@PersistenceContext (NAME = "지속성/LogicalName"unitName은 = "SOMEPU")
[...]

질문 : 영속성 단위를 변경하려면 (또는 다른 jdbc 소스를 가리 키도록) 소스 코드 버전을 일부 설정 파일이나 다른 것으로부터 읽을 수 있도록 쉽게 적응시킬 수 있습니다. 하지만 변수에 주석을 넣을 수는 없습니다. 솔루션은 무엇입니까?

예, 저는 항상 동일한 PU를 유지하고 applicationserver의 jbdc 자원을 다른 곳으로 향하게 할 수 있습니다. 그러나 AS의 관리자 설정에서 아무도 주위를 어루 만지는 것을 원하지 않습니다.

환호 스벤

답변

0

당신이 절대적으로 당신의 PersistenceContext를 얻기 위해 주석을 사용하는이있는 경우는, 나는 당신이 어떤 클래스에서의 EntityManager의 생성을 포장 할 수 추측하고이를 필요로하는 빈에 주입하는 것이있다 ? 당신의 EJB에서

public interface MyPersistenceContext 
{ 
     public void getEntityManager(); 
} 

: 그리고

가 제공 MyPersistenceContext의 구현이 EntityManager를 당신에게 달려 생성 방법
public class MyEJB 
{ 

     @EJB 
     private MyPersistenceContext persistenceContext; 

     private EntityManager em; 

     @PostConstruct 
     public void postConstruct() 
     { 
      em = persistenceContext.getEntityManager(); 
     } 

.... 

.

관련 문제