Введите EJB в объект области с Java EE 6

Как я могу ввести EJB в объект области (объект JPA) с Java EE 6?

10
задан Pascal Thivent 14 August 2010 в 15:20
поделиться

3 ответа

Обычно вы не делаете этого просто потому, что объекты домена выходят из базы данных, а не из контейнера, и, следовательно, услуги по инъекции не так прямолинейны.

Однако это не означает, что вы не должны этого делать.

Вы знаете, для чего предназначена ваша система и с какими другими системами она взаимодействует. Эти знания повлияют на решение, которое я себе представляю.

См. ссылку Активная запись . Как я имел в виду в своем комментарии обычно небольшие системы выбрали бы этот путь.

1
ответ дан 3 December 2019 в 22:00
поделиться

EJB3 клиентский инъектор применяется к "управляемым классам", таким как сервлеты и EJB (и код страницы JSF и т.д.).

Объекты JPA, я полагаю, не управляются в этом смысле. Поэтому я думаю, что вы бы вернулись к технике pre-EJB3, делая JNDI поиск и т.д..

Однако, как уже было замечено, в вашей иерархии ответственности может быть некоторый клубок, если вам это понадобится. Было бы интересно, если бы вы задали вопрос об общем дизайне, чтобы мы могли подумать о вопросах дизайна. Моя позиция по умолчанию заключается в том, что EJB используют объекты домена JPA, объекты JPA не используют EJB.

4
ответ дан 3 December 2019 в 22:00
поделиться

В Java EE 6 CDI расширяет концепцию управляемого компонента на все, и EJB может быть внедрен в управляемый компонент CDI (с помощью аннотации @Inject ). Но хотя взаимодействие между JPA и CDI было рассмотрено, оно не было включено в спецификацию (и) Java EE 6. Другими словами, внедрение в объект JPA невозможно.

См. Также

11
ответ дан 3 December 2019 в 22:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: