2012-03-29 9 views
0

JBoss 4.2.3 응용 프로그램 서버를 사용하고 있습니다.동일한 persistence.xml을 공유하는 하나의 EAR 안에 여러 개의 EJB jar 파일

현재 2 개의 EJB (EJB 3) jar가 들어있는 EAR이 있습니다.

주 EJB jar에는 데이터 소스 구성이있는 persistence.xml 파일이 있습니다. 나는 성공적으로 EntityManager를 전화와 나는 차에서 엔티티를 넣어하려고하면 persistence.xml을

들어있는 주요 EJB 항아리에 정의되어 있습니다 \ 쓰기 엔티티를 읽을 수있는 보조 EJB jar 파일에서

EJB jar 모듈을 가져 와서 메인 EJB의 퍼시스턴스 유닛을 사용하는 EntityManager를 통해 유지합니다. 예외가 발생했습니다 :

발생 원인 : org.hibernate.hql.ast.QuerySyntaxException : [ENTITY-CLASS-NAME]은 아닙니다. 매핑

내가 찾은 해결책은 보조 EJB mo에 다른 persistence.xml을 만드는 것입니다. 지속성 단위 이름을 변경하십시오.

내가 시도한 것이 맞는지 확실하지 않습니다. EAR에서 여러 EJB 모듈과 동일한 persistence.xml을 공유 할 수 있는지 여부에 상관없이 기여할 수 있습니까? (두 EJB 모듈 모두에서 엔티티를 가질 수있는 방식으로)?

답변

0

EAR의 최상위 lib/디렉토리에있는 JAR에 persistence.xml과 엔티티를 넣으십시오. 이것은 영속성 단위가 EAR의 모든 모듈에 의해 사용되도록 허용해야한다.

+0

안녕하세요. 답변 해 주셔서 감사합니다. 그러나이 경우 엔티티는 여전히 공유되어 있으므로 사용중인 특정 EJB 프로젝트에만 관련성이있는 엔티티를 분리하려고합니다. –

+0

내가 한 것은 특정 EJB 프로젝트에 persistence.xml을 추가하는 것입니다. 또한 엔티티를 볼 수 있기를 원합니다. 그런 다음 대부분 공백으로 두지 만 태그를 사용하여 다른 EJB를 가리 킵니다. 기타 -ejb.jar

+0

@ T.K. 나는 잠시 지났지 만 당신의 의견에 대해 설명 할 수 있습니까? 그 경우' Other-ejb.jar'이 ejb 모듈 또는 java 모듈로 application.xml에 나열되어 있습니까? – StormeHawke