2

JPA エンティティ クラスを単純な POJO/データ ホルダー オブジェクトとして使用して、エンタープライズ アプリケーションの他のレイヤー/クライアントに渡したいと考えています。

これは、他のレイヤー/クライアントがクラスパスに JPA API jar を持っていなくても実行できますか? (エンティティ クラスを含む jar を持っているだけです)? または、次のような問題を解決するためにこれが必要ですか。

@OneToMany(mappedBy="owner",fetch=FetchType.EAGER) エンティティのソース コードで?

エンティティをPOJOとして使用することのみを目的としたクライアント/プレゼンテーション層でJPA APIが必要な場合、JPA APIの依存関係の必要性を回避するための最良の解決策/代替手段は何ですか?

編集:より明確にするために。JPA APIが届かないJava ee環境外で可能な解決策について尋ねています。JPA API を使用せずに標準の Java クライアントに送信するすべてのエンティティ クラスの DTO のコーディングを回避できますか?

4

1 に答える 1

1

Entity クラスを、クラスパスに永続化 API を持たない他のアプリケーションと共有すると、クラスのロードに失敗します。これは、JVM がアノテーション クラスを解決できないためです。

ただし、Java EE の意味でのエンタープライズ アプリケーションについて話している場合は、永続化 API が標準の一部であるため、すべてのクラスパスに永続化 API が必要です。API は、すべての Java EE アプリケーション サーバーによって提供されます。その場合、エンティティ クラスを EAR のディレクトリ内の JAR ファイルにlib/配置して、プロジェクトのすべてのモジュールで共有されるようにします。

参考文献:

于 2013-07-07T11:59:47.087 に答える