Я разрабатываю очень простое веб-приложение с веб-службой REST, которое использует JPA для взаимодействия с базой данных PostgreSQL и работает в TomEE.Должен ли EntityManager вводиться в EJB?
Я не верю, что у меня есть потребность (или желание) вручную управлять жизненным циклом EntityManager, поэтому я планирую разгрузить эту рутину на TomEE с помощью управляемых EntityManager контейнеров (вероятно, с областью транзакций).
Я не считаю, что мне нужно (или желание) вручную управлять транзакцией JTA, которую требуется Управлять управляемыми EntityManager.
Наконец, я планирую использовать классы DAO для разделения любых запросов из бизнес-логики, которая является моей веб-службой REST.
Является ли мой лучший вариант для каждого класса DAO EJB, который использует аннотацию @PersistenceContext для получения ссылки на EntityManager? Если да, то какой тип EJB должен быть DOAs? Я видел примеры/блоги, предлагающие безгражданство, состояние, синглтон и даже полностью забыть DAO, введя EntityManager в самих веб-сервисах. Каков наилучший способ справиться с этим?
EntityManager уже предоставляет операции CRUD; почему бы вы обернуть его более (избыточным) кодом? –
В чем смысл вводить снова и снова EntityManager, если у вас уже есть DAO для этой области? Затем, введя его повсюду, вы не можете знать, где данные меняются ... У вас не будет единой точки доступа для нее –