Миграция компонентов EJB2.x BMP

Мы используем объектные компоненты EJB2.x с BMP (постоянство, управляемое компонентом). Похоже, BMP не поддерживается в EJB3. Мы хотели идти в ногу со временем и перейти на EJB3. Кто-нибудь знает, есть ли на самом деле какие-либо варианты BMP, доступные в 3.0?

Из того, что я могу сказать, используя 3.0, все компоненты управления данными должны использовать JPA и по определению ORM. Есть несколько вариантов использования собственного SQL, но это всего лишь способ использования JPA для реализации ORM.

Я не был уверен, что существует другой подход EJB3 для достижения той же функциональности, что и в EJB2.x EJB2.x BMP entity bean. В настоящее время мы используем стандартный метод ejbStore для обновления БД с помощью собственного SQL и метод ejbLoad для поиска всех компонентов и обновления компонента в случае отката транзакции. Я думал, что вы сможете сделать это с сеансовыми компонентами EJB3, но я не был уверен.

Возможно, вместо перехода на bean-компоненты EJB3 нам следует перейти на Spring.


person Marcus Leon    schedule 31.12.2008    source источник
comment
Spring и EJB3 не обязательно исключают друг друга. О какой части весны вы говорите? Это большой фреймворк, и вы не обязаны использовать его все сразу.   -  person Andrew Swan    schedule 21.05.2009
comment
Кстати, мы тоже используем BMP 2.1, и я чувствую вашу боль. Я думаю, что причина, по которой у вас возникли проблемы с поиском чего-то подобного в современном API, заключается в том, что люди поняли, что ручное кодирование SQL — плохая идея, когда у нас есть много библиотек ORM, которые будут генерировать запросы для вас независимо от БД ( вам нужно только указать диалект db).   -  person Andrew Swan    schedule 21.05.2009


Ответы (2)


Если вы действительно хотите кодировать SQL вручную, используйте POJO и необработанные JDBC DAO. Но это также, возможно, возможность переосмыслить то, как вы работаете, и использовать ORM/JPA.

person Pascal Thivent    schedule 02.09.2010

В прошлом я смешивал Hibernate + EJB2 (CMP + BMP), без проблем обмениваясь транзакционными контекстами, используя JTA.

Эта проблема очень похожа... Взгляните на https://cwiki.apache.org/GMOxDOC22/developing-bean-managed-persistence-with-jpa.html. Вы можете реализовать свой собственный EntityManager.

Если повезет, вы даже сможете обмениваться контекстами транзакций.

person Sebastian    schedule 02.09.2010