Я создал спокойный веб-сервис для netbeans, который обращается к локальной базе данных. Я посмотрел образец проекта из netbeans, и они используют контроллер JPA. Этот вопрос может быть базовым, но у меня нет времени, чтобы очень глубоко расследовать действия JPA.JPA контроллер & база данных. Веб-сервис
Может кто-нибудь объяснить, почему использование контроллеров JPA необходимо?
Кроме того, я прочитал этот предыдущий вопрос: «Доступ к таблице базы данных через JPA Vs. 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();
}
}
}
Это фрагмент из этого класса. класс клиента - это объект базы данных. @mike – David031
@ user1960972 то, что вы показали, действительно сродни Службе. Посмотрите на весь код обработки транзакций и закрытие EM. С EJB все это просто уходит. Вы вводите EM, вызываете запрос на него, и все. –