我正在构建一个我想使用 JPA 的简单 Web 应用程序。尽管我希望在 Glassfish 上进行部署,但我认为在应用程序中管理实体持久性而不是通过 JTA 数据源可能是有益的。我承认这可能不是一个非常聪明的主意?
前段时间我将以下内容放在一起(可能来自现在丢失的网络参考):
public class PersistenceManager {
private static final PersistenceManager instance = new PersistenceManager();
protected EntityManagerFactory emf;
public static PersistenceManager getInstance() {
return instance;
}
private PersistenceManager() {
}
public EntityManagerFactory getEntityManagerFactory() {
if (emf == null) {
createEntityManagerFactory();
}
return emf;
}
public void closeEntityManagerFactory() {
if (emf != null) {
emf.close();
emf = null;
}
}
protected void createEntityManagerFactory() {
this.emf = Persistence.createEntityManagerFactory("Met");
}
}
所以,我的问题;这是一种合理的方法吗?这里有什么陷阱吗?