質問

EJB 2.x エンティティ Bean (BMP) を使用する大規模なアプリケーションがあります。これは恐ろしい永続化戦略であることがよく知られています (必要に応じて詳しく説明します)。

このアプリケーションの移行を開始して、より表現力が高く、透過的で、非侵襲的な永続化戦略を使用したいと考えています。私の会社でのこれまでの経験を考慮すると、Hibernate 3.x が当然の選択です。

アプリケーション内の 100 以上のテーブルでエンティティ Bean が使用されているため、Hibernate への移行には時間がかかります。そこで私は、2 つの永続化戦略を並行して、できれば同時に同じテーブル上で実行する段階的なアプローチを検討しています。

私の質問は、これら 2 つの永続化戦略を組み合わせる場合の落とし穴 (ある場合) は何でしょうか?彼らはお互いの邪魔になるでしょうか?

役に立ちましたか?

解決

jodonnel が述べたように、Hibernate で第 2 レベルのキャッシュを使用し、テーブルが Hibernate の外部で変更された場合、Hibernate はそのキャッシュ エントリが古いことを知る方法がないため、キャッシュに注意を払う必要があります。

トランザクションの場合、両方ともコンテナーによって提供される JTA を使用する必要があるため、安全である必要があります。

他のヒント

本当に注意しなければならないのは、Hibernate セッションの操作だと思います。Hibernate は内容をキャッシュするため、それが邪魔になる可能性があります。

率直に言って、Hibernate を採用する場合は、Entity Bean を完全に削除することをお勧めします。Hibernate 作業をセッション Bean 内で実行し、セッション Bean にトランザクションを管理させます。

または、Java Persistence API に標準化された Hibernate である EJB 3 を代わりに使用します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top