안녕 얘들 아, Java SE 프로젝트에서 JPA 용 Eclipse 링크를 사용하고있다. 내 데이터베이스에서 각 테이블에 대해 "jpa 컨트롤러"클래스를 사용하고 있습니다 (올바른 방법입니다). 또한 "jpa 컨트롤러 클래스"마다 EntityManagerFactory를 제공하므로 entitymanager를 얻을 수 있습니다. 프로그램이 시작되면 AnalyzerPU 로그인이 2 번 성공한 것으로 표시됩니다. 하나의 EntityManagerFactory 만 사용해야합니까? 내가 가진 모든 사람들이 로그인을하는 것처럼 보입니다. 계속해서 데이터베이스에있는 각 테이블에 대해 12 개의 로그인을 갖게됩니다. 이게 맞을 수 없다는 거 알아? 나는 "m 내 컨트롤러를 배치하는 방법지속성 단위의 다중 로그인?
public class PkgLineControllerImpl extends AbstractController implements PkgLineController {
private EntityManagerFactory emf = null;
public PkgLineControllerImpl() {
super(StateHistoryImpl.class);
emf = Persistence.createEntityManagerFactory("StateHistoryAnalyzerPU");
}
public EntityManager getEntityManager() {
return emf.createEntityManager();
}
@Override
public List<PkgLine> findAll() {
EntityManager em = getEntityManager();
List<PkgLine> pkgLineList = new ArrayList<PkgLine>();
try {
pkgLineList = em.createNamedQuery("PkgLine.findAll").getResultList();
return pkgLineList;
} finally {
em.close();
}
}
은}
입니다. 어떤 도움을 주셔서 감사합니다. 때로는
는이 작업을 수행 할 것입니다. 때로는
[EL Info]: 2011-02-01 14:34:07.991--ServerSession(18450577)--EclipseLink, version: Eclipse Persistence Services - 2.0.2.v20100323-r6872
[EL Info]: 2011-02-01 14:34:08.381--ServerSession(18450577)--fileStateHistoryAnalyzerPU login successful
100
200
100
200
100
null
null
null
null
null
는이 작업을 수행 할 것 .
Persistence Services - 2.0.2.v20100323-r6872
[EL Info]: 2011-02-01 14:34:08.381--ServerSession(18450577)--fileStateHistoryAnalyzerPU login successful
100
200
100
200
100
Persistence Services - 2.0.2.v20100323-r6872
[EL Info]: 2011-02-01 14:34:08.381--ServerSession(18450577)--fileStateHistoryAnalyzerPU login successful
null
null
null
null
null
null는 일부 데이터를 반환하는 JPAController 클래스 메서드 중 하나이며 숫자는 데이터를 반환하는 다른 JPA 컨트롤러 클래스입니다. 하나의 entitymanagerfactory를 AbstractClass에 넣었지만 여전히 그것을 수행하고 있습니다.
안녕하세요. 내 게시물을 업데이트했습니다. 그래서 모든 메소드에 대한 EntityManagerFactory "로그인"을 갖는 것이 좋습니다. –
여러 스레드를 사용하고 있습니까? 하나의 영속성 단위에 대해 하나의 로그인 만 가져야합니다. 일반적으로 정적 변수에서 EntityManagerFactory를 관리하여 하나만 존재하도록해야합니다. – James
안녕하세요. 감사합니다. 아니요. 다중 스레드를 사용하지는 않지만있을 수 있습니다. 실제로 하나의 managerfactory (static final)을 생성하고 jpa 컨트롤러 클래스에 전달하여 entitymanagers를 만들었습니다. 멀티 스레드 응용 프로그램에서 괜찮습니까? –