В чем разница между проектом JPA и проектом EJB в Eclipse? - PullRequest
6 голосов
/ 05 мая 2011

Какой из них используется, когда?

Когда я хочу приложение JSF + без сохранения состояния + JPA Entity, мне нужно, чтобы EJB Project и Dynamic Web Project интегрировались в EAR Project?

Ответы [ 3 ]

15 голосов
/ 05 мая 2011

EJB-проект - это проект, ориентированный на разработку Enterprise Java Beans.Как правило, EJB-компоненты зависят от постоянных компонентов, которые реализуются с использованием технологии JPA (представьте, что JPA является зависимостью EJB-компонента).

Причина, по которой у вас есть возможность создать проект JPA независимо от EJB, заключается в том, что некоторые люди могут не захотеть использовать (или не обязаны) EJB, но им все равно нужно использовать ORMрамки, такие как JPA.Таким случаем может быть, например, веб-проект (т.е. JSF), который будет использовать JPA напрямую для сохранения (без EJB).

Суть в том, что, хотя EJB 3 использовал JPA для постоянства, вам не обязательно использовать EJB в вашем проекте (если только вам это не нужно), чтобы воспользоваться преимуществами инфраструктуры ORM, такой как JPA.

Теперь, чтобы включить JPA для проекта EJB, щелкните правой кнопкой мыши по проекту Eclipse, перейдите к параметру «Фасеты проекта» и выберите фасет JPA.Тем самым eclipse добавит необходимые библиотеки, создаст необходимые артефакты (persistence.xml) и включит инструменты, связанные с JPA, в вашей IDE.

5 голосов
/ 21 августа 2013

Java Persistence API, иногда называемый JPA, - это спецификация языка программирования Java, которая описывает управление реляционными данными в приложениях с использованием Java Platform, Standard Edition и Java Platform, Enterprise Edition.

API персистентности Java возник как часть работы группы экспертов JSR 220. JPA 2.0 является работой экспертной группы JSR 317.

Постоянство в этом контексте охватывает три области:

the API itself, defined in the javax.persistence package
the Java Persistence Query Language (JPQL)
object/relational metadata

Enterprise JavaBeans (EJB) - это API-интерфейс Java, разработанный Sun Microsystems, который определяет архитектуру компонентов для многоуровневых систем клиент-сервер.

Системы EJB позволяют разработчикам сосредоточиться на реальной бизнес-архитектуре модели, а не беспокоиться о бесконечных объемах программирования и кодирования, необходимых для соединения всех рабочих частей. Эта задача оставлена ​​на усмотрение поставщиков EJB-серверов. Разработчики просто проектируют (или покупают) необходимые компоненты EJB и размещают их на сервере.

Поскольку EJB-системы написаны на Java, они не зависят от платформы. Будучи объектно-ориентированными, они могут быть реализованы в существующие системы практически без перекомпиляции и конфигурирования.

1 голос
/ 05 мая 2011

Это зависит от версии Java EE, которую вы используете. В Java EE 6 мы можем иметь EJB в самом файле WAR. Так что одного динамического веб-проекта будет достаточно.

Если вы используете Java EE 1.5, вам нужен проект Dynamic Web для JSF, а для bean-компонента без сохранения состояния - проект EJB, а также корпоративный проект для объединения WAR и JAR в EAR. Вы можете иметь связанные с персистентностью классы в самом проекте EJB и не требовать JPA-проекта здесь.

Java EE предоставляет возможность использовать JPA независимо от EJB, поэтому, если ваше приложение не требует EJB, но все еще хочет использовать JPA, вы можете перейти к проекту JPA.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...