Мы находимся в процессе переосмысления нашего технического стека, и ниже представлены наши варианты (мы не можем жить без Spring и Hibernate из-за сложности приложения и т. Д.). Мы также переходим с J2EE 1.4 на Java EE 5.
Стек технологий
- Java EE 5
- JPA 2.0 (я знаю, что Java EE 5 поддерживает только JPA 1.0, но мы хотим использовать Hibernate в качестве поставщика JPA)
- Hibernate 3.6.0 (у нас уже есть много файлов hbm с пользовательскими типами и т. Д., Поэтому мы не хотим переносить их в настоящее время в JPA. Это означает, что мы хотим, чтобы оба сопоставления jpa / hbm работали вместе, и, следовательно, Hibernate как JPA поставщик вместо использования по умолчанию, который поставляется с сервером приложений)
Теперь проблема в том, что я хочу придерживаться локальных транзакций, но другие члены команды хотят использовать JTA. Я работал с J2EE последние 9 лет и снова и снова слышал, как люди предлагают придерживаться локальных транзакций, если мне не нужны двухфазные коммиты. Это не только из соображений производительности, но отладка / устранение неполадок локальной транзакции намного проще, чем JTA (даже если JTA выполняет только однофазную фиксацию, когда это необходимо).
Я предлагаю использовать весеннее декларативное управление транзакциями + локальные транзакции (HibernateTransactionManager) вместо контейнера JTA.
Я хочу убедиться, что я параноик или у меня есть веская причина. Я хотел бы услышать, что думает остальной мир Java EE. Или укажите мне соответствующую статью.