質問

GWT 1.5.3を使用してデータベースアプリケーションを構築しようとしています。私はオブジェクトに JPA アノテーションを使用します。ホストモードではGWTのRPCが正常に動作しているようです。しかし、GWT コンパイラーを使用してアプリをコンパイルしようとすると、次のようなエラーが発生します。「インポート javax.persistence を解決できません」、「エンティティを型に解決できません」。toplink-essentials.jar はプロジェクト パスにすでに含まれています。この問題を解決するには他にどのような設定が必要ですか?

役に立ちましたか?

解決 4

[OK]を、私は欠けていたものを発見しました。私はmyappの-compile.cmdスクリプト(またはAntビルドファイル内)での私のGWTコンパイラのパスにJPA-注釈-source.jarを含める必要がありました。ちなみに誰も私にこのJPA-注釈-source.jarファイルの起源を伝えることができますか?

他のヒント

あなたはギレアデを使用することができます( http://sourceforge.net/projects/gilead/する)シームレスGWTとJPAエンティティを管理するためのライブラリます。

よろしく

あなたはGWTプロジェクトのビルド・パスにJPAの注釈のソースコードを含める必要があります。詳細はこちらを参照してください。

ます。http://コード。 google.com/p/google-web-toolkit/issues/detail?id=1830&can=1&q=jpaする

具体的にあなたの問題を解決します。このjarファイル:

ます。http:// google- web-toolkit.googlecode.com/issues/attachment?aid=1475633892125294312&name=jpa-annotations-source.jarする

JPA と GWT の一般的な問題は、GWT 自体が複雑な JPA クラスをサポートしていないため、java.io.Serializable を実装し、単純な JPA リソース アノテーションを持つ単純な POJO 永続エンティティ DTO を実行するだけであることです。GWT クライアントのスコープ内にエンティティ クラスを作成する必要があります。それを yourproject.client パッケージの下に置くか、次のコマンドを使用して追加します。

ソースパス = "クライアント"

ソースパス = "エンティティのフォルダー"

GWT プロジェクトの YouProject.gwt.xml ファイル内。これには GWT クライアントにエンティティ オブジェクトが含まれるため、RPC のクライアント側でもエンティティ オブジェクトを使用できるようになります。DAO はサーバー側にある必要があり、コンテナーがサポートするものはすべて含めることができます。

現在発生している問題は、コンパイル時に GWT コンパイラーが、エンティティ DTO クラス内の JPA アノテーションのインポートが何であるかを認識できないと言うことです。このため、javax.persistence クラスとソース コードが必要になります。Rustmyself による jpa-annotation-source.jar 参照は機能します。これは、javax.persistence でコンパイルされたクラス ファイルとソース コード ファイルに Persistence.gwt.xml を加えたものです。これは、javax.persistence パッケージの単純な GWT モジュールです。独自の GWT モジュールの作成方法を知っていれば、これらすべてを機能させるのに問題はないはずです。ちなみに、Java EE の公式ソースは、glassfish 開発サイトのビルド セクション wiki.glassfish.java.net にあります。

プロキシを使用して派手な PU エンティティを単純なオブジェクトに自動的にラップしたり、実行時に遅延ロードしたりするソリューションは他にもたくさんあります。それらは機能しますが、最適な解決策ではありません。ベスト プラクティスは、GWT クライアント コンテキスト上に POJO JPA DTO エンティティを配置し、サーバー上に本格的な DAO を配置することで、最初から物事をシンプルかつ堅牢にすることです。

GWTPersistence の例
GWT と JPA をシームレスに動作させる方法に関する実際の動作例を追加しました。これは、ソース コードとデプロイメント ファイルを含む NetBean プロジェクトです。見る NingZhang.info での GWTPersistence

私もJPAで働いています。< - >。GWTのデータ変換など

私が使用しDTO層を排除するための努力においてギリアドすぎます。

ここでの私の異議はのjavax.persistence翻訳についてです。これを回避するために、I使用するXML JPAマッピング宣言(orm.xml)

単に、あなたのエンティティの別のバージョンを維持するが、注釈なし!

の相乗コメントに跳ね返り、あなたは今(GWT 1.5から)のみを追加する必要があります。

<source path='javax.persistence'/>

あなたのModule.gwt.xmlへ

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