5.8.1. DataManager vs. EntityManager
И DataManager и EntityManager предназначены для операций с сущностями (CRUD). Ниже приведены различия между этими интерфейсами.
| DataManager | EntityManager | 
|---|---|
DataManager доступен и на среднем слое и на клиентском уровне.  |  
    EntityManager доступен только на среднем слое.  |  
   
DataManager является синглтон-бином.  |  
    Ссылку на EntityManager необходимо получать через интерфейс Persistence.  |  
   
DataManager содержит несколько высокоуровневых методов для работы с detached сущностями:   |  
    EntityManager в большой степени повторяет стандартный   |  
   
DataManager всегда стартует новую транзакцию внутри.  |  
    Для работы с EntityManager необходима открытая транзакция.  |  
   
DataManager загружает частичные сущности в соответствие с представлением.  |  
    EntityManager всегда загружает все локальные атрибуты. Если используется представление, оно влияет только на загрузку ссылочных атрибутов.  |  
   
Запросы в DataManager могут возвращать только сущности. Запросы, возвращающие одиночные атрибуты или агрегированные значения (SUM, COUNT) вызывают ошибку.  |  
    EntityManager может выполнять любые JPQL или native запросы.  |  
   
DataManager применяет ограничения безопасности, когда вызывается с клиентского уровня.  |  
    EntityManager не накладывает ограничения безопасности.  |  
   
При работе на клиентском уровне доступен только DataManager. На среднем слое, используйте EntityManager когда необходимо реализовать атомарную логику внутри транзакции или выполнить запрос, возвращающий отдельные атрибуты или агрегированные значение. В противном случае, на среднем слое можно использовать любой из интерфейсов на выбор.
Если вам нужно обойти ограничения DataManager при работе на клиентском уровне, создайте свой сервис и используйте EntityManager для работы с данными. В сервисе можно проверять права пользователя с помощью интерфейса Security и возвращать клиенту данные в виде персистентных или неперсистентных сущностей или произвольных значений.