2010-02-05 2 views
2

Есть несколько приложений, которые используют постоянство Java. Каждое приложение имеет свой собственный набор объектов, которые представляют одни и те же таблицы в БД. Например, приложение А имеет объекты для Таблицы 1, Таблицы 2 и т. Д .; в то же время приложение B также имеет сущности для Table1, Table2 и т. д. Вместо этого я хочу создать новый модуль EJB с 1 компонентом с локальным интерфейсом, переместить в него все сущности и добавить его в качестве библиотеки для проектов, которые может потребовать доступа к постоянным объектам. Таким образом, это будет выглядетьХранить все объекты в одном модуле EJB

@Stateless 
public class DataBean implements DataLocal {   
@PersistenceContext(unitName="my_data") 
private EntityManager em ; 
public EntityManager getManager() 
{ 
    return em; 
}; 
} 

Я довольно новое в Java-ЭИ, поэтому мне интересно, будет ли это плохой дизайн или нет. Спасибо заранее.

+0

Я предполагаю, что вы хотели сказать: «У меня есть несколько приложений, которые используют постоянство Java», верно? – skaffman

+0

Несомненно, я имел в виду «У меня ...» – a1ex07

ответ

4

Существует несколько приложений, которые используют постоянство Java.

Вы шутите? :)

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

Ввод сущностей в отдельные JAR определенно правильный подход для повторного использования и модульности. И для использования таких упакованных объектов используйте элемент jar-file в persistence.xml, чтобы сделать их видимыми для упакованного блока персистентности каждого приложения, которое им необходимо.

Я довольно новичок в Java-ee, поэтому я задаюсь вопросом, является ли он плохим дизайном или нет. Заранее спасибо.

Я не получаю точку сессионного компонента и поглотитель возвращающую EntityManager, вам не нужно, что, на мой взгляд.

+0

Я хотел не слишком сильно менять существующие источники. В настоящее время каждое приложение имеет фабул без состояния, который использует инъекцию ресурсов для получения EntityManger. Моя идея заключалась в том, чтобы вместо этого добавить DataBean и вызвать getManager() всякий раз, когда мне это нужно. – a1ex07

+0

@ a1ex07 Я не вижу разницы в конце, и приложениям, скорее всего, понадобится EntityManager. Так что это на самом деле больше работы и более многословного ИМХО. Но, может быть, я что-то упустил. –

+0

Я просто рассматриваю разные способы ... Я полностью забыл, что persistence.xml может содержать секцию jar-file, спасибо за указание на это. – a1ex07

Смежные вопросы