嘿家伙我在我的Java SE项目中使用eclipse链接进行JPA。我为我的数据库中的每个表使用“jpa控制器”类(这是正确的方式)。我还为每个“jpa控制器类”提供一个EntityManagerFactory,以便我可以获取该entitymanager。当程序启动时,它显示AnalyzerPU登录成功2次。我应该只使用一个EntityManagerFactory。似乎每个我都有它显示登录。如果我继续前进,我会有12个登录名,我的数据库中的每个表都有1个登录名。我知道这不可能是正确的?持久单元的多次登录?
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“登录”是好的吗? – 2011-02-01 20:54:17