我在访问本地数据库的 netbeans 上创建了一个安静的 Web 服务。我查看了 netbeans 的示例项目,他们使用 JPA 控制器。这个问题可能是基本的,但我没有太多时间深入研究 JPA。
有人可以解释为什么需要使用 JPA 控制器吗?
另外,我阅读了上一个问题,“通过 JPA 访问数据库表与 Web 应用程序中的 EJB”,它建议使用 EJB。
再次,这是否可以解释。
公共类 CustomerJpaController 实现 Serializable {
public CustomerJpaController(UserTransaction utx, EntityManagerFactory emf) {
this.utx = utx;
this.emf = emf;
}
private UserTransaction utx = null;
private EntityManagerFactory emf = null;
public EntityManager getEntityManager() {
return emf.createEntityManager();
}
public void create(Customer customer) throws PreexistingEntityException, RollbackFailureException, Exception {
EntityManager em = null;
try {
utx.begin();
em = getEntityManager();
em.persist(customer);
utx.commit();
} catch (Exception ex) {
try {
utx.rollback();
} catch (Exception re) {
throw new RollbackFailureException("An error occurred attempting to roll back the transaction.", re);
}
if (findCustomer(customer.getCustomerId()) != null) {
throw new PreexistingEntityException("Customer " + customer + " already exists.", ex);
}
throw ex;
} finally {
if (em != null) {
em.close();
}
}
}