2010-04-01 2 views
0

Я знал, что инструменты ORM, такие как Hibernate, имеют собственный механизм управления транзакциями. Мы также можем использовать транзакцию напрямую с помощью JDBC. И СУБД имеет свои транзакционные средства. Интересно, что в каком слое (-ах) транзакция фактически реализована в приложении J2EE? Я предполагаю, что транзакция в Hibernate построена на JDBC, в свою очередь JDBC полагается на базовую СУБД для реализации транзакции. это справедливо?Какой слой реализовать Механизм транзакции

С уважением!

ответ

4

В сервисном слое, конечно.

В EJB они находятся на сессионных компонентах.

Весной они находятся на службе.

Услуги известны об элементах работы. Вот почему они владеют контекстом транзакций.

0

Служба транзакций не реализована ни на одном конкретном прикладном уровне. Если вы имеете в виду, где вы собираетесь использовать транзакционное обслуживание, это зависит от вашего требования. Иногда разграничение транзакций может быть сам вид слоя, см OpenSessionInView

+0

Это не так хорошо работает, если вы добавить или изменить вид технологии (например, приукрашивать ваш веб-уровень с мобильным интерфейсом). Мобильный пользовательский интерфейс будет запрашивать услуги через HTTP, поэтому транзакции должны оставаться в сервисе. – duffymo

+0

«иногда» и сколько веб-приложений вы видите, есть мобильные интерфейсы? Даже в тех сценариях, которые, как я ожидал, вы столкнетесь с аналогичной проблемой с прогибами спящего режима, описанными в ссылке, которую я предоставил. – Adi

0

In Service Layer, потому что мы пишем нашу бизнес-логику в уровне услуг только

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