Храните все сущности в одном модуле EJB - PullRequest
2 голосов
/ 05 февраля 2010

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

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

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

1 Ответ

4 голосов
/ 06 февраля 2010

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

Ты что, шутишь? :)

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

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

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

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

...