Java EE 6 — Шаблон Persistent Domain Objects — какие успехи?

У меня умеренно сложное приложение, использующее POJO, и теперь пришло время перенести его на EJB3.1, чтобы его можно было развернуть онлайн, получить к нему доступ через службы REST и извлечь выгоду из контейнерной среды (сохранение является наиболее важным, но транзакции также были бы полезны)

. Я был вдали от Java EE со времен J2EE и изо всех сил пытаюсь понять «потерю» компонентов управления данными.Мне потребовалось некоторое время, чтобы понять, что объекты в EJB3.1 на самом деле не являются компонентами в старом смысле. .. :) Я прочитал несколько книг по EJB3, включая "руководство" O'Reilly Enterprise JavaBeans 3.1, в которых объясняются концепции и компоненты EJB3, но не варианты шаблонов реализации.

В моем исследовании и поиске паттернов Java EE 6 меня скорее привлек подход Адама Биена, в частности паттерн «Persistent Domain Objects» (PDO) (из его книги, но также изложенный здесь: http:/ /download.java.net/general/podcasts/real_world_java_ee_patterns.pdf), который предлагает наименьшую сложность и наибольшую синергию с моим текущим приложением POJO. PDO также тесно связан с традиционной объектно-ориентированной философией и подходом, и мне это очень нравится.

Вместо того, чтобы возобновлять дебаты по поводу PDO, мне интересно услышать мнение людей, которые реализовали его, и что сработало, а что нет.где у вас были трудности. В частности, я хотел бы узнать, как вы совершали вызовы из сущностей JPA в другие службы в контейнере (например, вызовы сеансовых компонентов без сохранения состояния и т. д.).

Я также хотел бы знать, существуют ли альтернативы шаблону PDO, которые позволяют мне поддерживать структуру приложения (используя полиморфизм и т. д.) без необходимости создавать сессионный компонент и объект JPA для каждого класса в моей модели. (Я не хочу этого делать отчасти из-за огромных усилий, необходимых для рефакторинга всех модульных и интеграционных тестов, а отчасти потому, что, насколько я понимаю, я в конечном итоге попытаюсь воспроизвести свою объектную связь 1toMany и т. д. через мои сеансовые бобы тоже, что кажется сумасшедшим).

Кто-нибудь может поделиться опытом — или если вы хотите указать, что я идиот и пропустил что-то фундаментальное в Java EE 6, это тоже будет «приветствовать» :)

TIA

7
задан user1180316 16 March 2012 в 10:50
поделиться