Куда (на каком уровне) поместить методы запроса сущности, методы “сохранения” и т.д.?

StackOverflow https://stackoverflow.com/questions/183366

  •  06-07-2019
  •  | 
  •  

Вопрос

У меня есть приложение SEAM с некоторыми объектами JPA / Hibernate.И теперь я задаюсь вопросом, куда поместить мой запрос, методы сохранения.

Выбор по умолчанию, по-видимому, помещает их в сеансовый компонент layer с введенным

@PersistenceContext(...) @Inject EntityManager entityManager;

Но я думаю, что предпочел бы использовать методы для самих объектов.Каковы "за" / "против"?

  1. Проверяемость?
  2. Любезность?
  3. Производительность?

И есть ли у кого-нибудь ссылки на лучшие практики взаимодействия с EntityManager и т.д.из методов на объектах, а не из сеансовых компонентов?

Лучший, Андерс

Это было полезно?

Решение

У меня нет опыта работы с SEAM, но, исходя из моего опыта работы с Java-проектами, я обнаружил, что проще всего держать beans подальше от методов persist.Что мы обычно делаем:

  • Есть компоненты для бизнес-объектов (например, "Пользователь" и "Настройка")
  • Есть слой DAO, который может сохраняться и извлекать эти компоненты (простой CRUD)
  • Имейте уровень обслуживания, который показывает, как обрабатывать компоненты и, возможно, даже как создавать совокупность компонентов

Таким образом, все довольно разделено, и его легко объединить.Производительность обычно не является проблемой при такой настройке.

Другие советы

Да, это тоже то, что я делал раньше.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top