Я разрабатываю очень простое веб-приложение с веб-службой REST, которая использует JPA для взаимодействия с базой данных PostgreSQL и работает в TomEE.
Я не считаю, что у меня есть необходимость (или желание) вручную управлять жизненным циклом EntityManager, поэтому я планирую перенести эту рутинную работу на TomEE с помощью EntityManagers, управляемых контейнером (вероятно, с областью действия транзакции).
Я не считаю, что у меня есть потребность (или желание) вручную управлять транзакцией JTA, которую требуют EntityManagers, управляемые контейнером.
Наконец, я планирую использовать классы DAO для отделения любых запросов от бизнес-логики, которая является моей веб-службой REST.
Является ли мой лучший вариант для каждого класса DAO EJB, который использует аннотацию @PersistenceContext для получения ссылки на EntityManager? Если да, то каким типом EJB должны быть DOA? Я видел примеры/блоги, в которых предлагалось использовать stateless, stateful, singleton и даже полностью забыть о DAO, внедрив EntityManager в сами веб-сервисы. Каков наилучший способ справиться с этим?