0

クライアント アプリとサーバー アプリの間でいくつかのドメイン オブジェクトを共有したいと考えています。

Hibernate 4 以降、Hibernate アノテーションは hibernate-core (以前は別の jar でした) に統合されました。http://in.relation.to/Bloggers/NoMoreHibernateannotationsModuleを参照してください。

私は本当に注釈に固執したいと思います (そして xml ベースのマッピングに切り替えないでください)。

同時に、休止状態のコア依存関係をクライアントにバンドルすることを本当に避けたいと思います(これは、理想的にはすべての起動時に、Java Web Start を介して http 経由でユーザーに転送されます)。

Hibernate 3.x に戻す必要がありますか? これらの注釈の依存関係は、クライアントを実行するために必要ですか、それともクライアントをコンパイルするために必要ですか?

ありがとう

4

1 に答える 1

1

クラスをロードできるようにするために、クラスパスにクラスの注釈を含める必要はありません。

つまり、Hibernate エンティティにはコレクションと他のエンティティへの参照が含まれています。コレクションは Hibernate コレクションのインスタンスであり、参照は遅延ロードされている場合は Hibernate プロキシにすることができます。したがって、サーバーからクライアントに Hibernate エンティティをシリアライズする場合、クライアントはそれらをロードできるようにクラスパスに Hibernate jar(s) を必要とします。

クライアント側で Hibernate の依存関係を回避したい場合は、Hibernate エンティティではなく DTO をクライアントに転送することを検討する必要があります。

于 2012-11-23T16:27:53.150 に答える