以下のサービスでは、Dao を初期化し、EntityManager を挿入しようとしています。このプロジェクトでは春を使用していません。オブジェクトsetEntityManager()
が常にGenericDao
. これはこれを行う適切な方法ですか?
public class GenericService<T, Dao> {
private static Logger logger = Logger.getLogger(Logger.class.getName());
protected Dao dao;
protected EntityManager em;
public GenericService(Class<Dao> daoClass) {
try {
dao = daoClass.newInstance();
EntityManagerFactory emf = Persistence.createEntityManagerFactory("unit");
em = emf.createEntityManager();
dao.setEntityManager(em);
} catch(InstantiationException e) {
logger.log(Level.SEVERE, "Unable to initialize DAO: {1}", daoClass.getClass());
} catch(IllegalAccessException e) {
logger.log(Level.SEVERE, "Unable to initialize DAO: {1}", daoClass.getClass());
}
}
}