私たちは技術スタックを再考する過程にあり、以下が私たちの選択です (アプリの複雑さなどにより、Spring と Hibernate なしでは生きられません)。また、J2EE 1.4 から Java EE 5 に移行しています。
技術スタック
- JavaEE5
- JPA 2.0 (Java EE 5 が JPA 1.0 のみをサポートしていることは知っていますが、Hibernate を JPA プロバイダーとして使用したいと考えています)
- Hibernate 3.6.0 (カスタム タイプなどの多くの hbm ファイルが既にあるため、現時点ではそれらを JPA に移行したくありません。つまり、jpa/hbm マッピングの両方を連携させて、Hibernate を JPA として動作させる必要があることを意味します) App Server に付属のデフォルトを使用する代わりにプロバイダー)
問題は、私はローカル トランザクションに固執したいのですが、他のチーム メンバーは JTA を使用したいということです。私は過去 9 年間 J2EE を使用してきましたが、2 フェーズ コミットが必要ない場合は、ローカル トランザクションを使用することを勧める人々の声を何度も耳にしました。これはパフォーマンス上の理由だけでなく、ローカル トランザクションのデバッグ/トラブルシューティングは JTA よりもはるかに簡単です (JTA が必要なときに単一フェーズ コミットのみを行う場合でも)。
私の提案は、コンテナー JTA の代わりに、Spring 宣言型トランザクション管理 + ローカル トランザクション (HibernateTransactionManager) を使用することです。
私が偏執病なのか、それとも正当な主張があるのか を確認したい. Java EE の世界の残りの部分がどう思うか聞きたいです。または、適切な記事を教えてください。