суббота, 21 ноября 2009 г.

Locking and Concurrency in Java Persistence 2.0

Locking and Concurrency in Java Persistence 2.0

При разработке J2EE приложения встает необходимость работы с Базой.
Типичный "путь" данных: SomeMiddleware(Spring,EJBContainer(WebSphere,WebLogic))<->SomeORMFramework(Hibernate,TopLink,OpenJPA,EclipseLink)<->JDBCDriver<->TCP/IP<->RDBMS(Oracle,DB2,PostgresQL,MySql).

Есть такая специфика, если мы из SomeMiddleware используем напрямую SomeORMFramework, то
+++ можем использовать специфичные удобные фичи
+++ приложение ИНОГДА быстрее в той или иной мере(если используем особенно нужную фичу)
--- мы привязываемся к конкретному SomeORMFramework

Предлагается использовать Java Persistence API (==JPA). Это набор API. Без реализации. В качестве реализации используются все те же Hibernate,TopLink,OpenJPA,EclipseLink.

В таком случае
- облегчается переход от одного ORMFramework к другому
- используется стандартное API

Т.е. SomeMiddleware<->JPA<->SomeORMFramework

SomeORMFramework ко всему может использовать кэш второго уровня.

Особая "прелесть" в том, что уровни изоляции JPA, SomeORMFramework, кэша, JDBCDriver, RDBMS - МОГУТ НЕ СОВПАДАТЬ.
А уж режимы блокирования записей/таблиц - так и подавно.

P.S. Но, чем все сложнее - тем выше зп у тех кто это одолел:)

Комментариев нет:

Отправить комментарий