Корпоративное приложение и клиент корпоративного приложения
Вопрос
Я присоединился к новому проекту в новой компании, и мы пытаемся использовать JPA для выполнения некоторой работы с БД.Итак, у нас есть Ear с EJB, веб-сервисом, а также клиент приложения, который действительно выполняет всю работу.Веб-сервис вызывает EJB, а EJB вызывает клиента для выполнения работы с БД.Итак, в клиенте приложения я хочу загрузить EntityManager с помощью аннотаций, но, похоже, он не работает (em всегда имеет значение null):
@Entity
public class Whatever...{
@PersistenceContext(unitName="pu")
EntityManager em;
}
Итак, я подумал, что мне нужно загрузить EntityManager в EJB, но это тоже не сработало, потому что кажется, что JPA не видит классы Entity, поскольку они находятся в клиенте приложения, а не в EJB.Может ли кто-нибудь дать мне некоторые рекомендации?
Решение
Это неправильное использование клиента приложения.Вся обработка вашей базы данных должна происходить в EJB.Кажется, нет какой-либо очевидной причины для существования клиентов приложения.
Эта ссылка ведет на старую статью, но дает примеры того, для чего используется клиент приложения (приложения, а не серверные службы).