2

GWT-RPC を使用して休止状態のオブジェクトをフロントエンドに転送したいと考えています。もちろん、注釈をjavascriptにコンパイルできないため、注釈付きのクラスを転送することはできません。したがって、「.hbm.xml」で純粋に休止状態のマッピングを行いました。これは、非常に単純なオブジェクトでは問題なく機能しました。しかし、たとえばセットで実現される oneToMany 関係などのより複雑なものを追加するとすぐに、コンパイラーはセットのシリアライゼーションの問題について不平を言います (ただし、セット内のオブジェクトもシリアライズ可能です)。

hibernate が GWT で解釈できないある種の特別なセットを作成するため、機能しないと思いますか?

これを回避する方法はありますか、それともオブジェクトをフロントエンドに送るために別のアプローチが必要ですか?

編集: 休止状態がオブジェクトを変更するため、私のアプローチは RPC では不可能のようです。(サノスからの回答を参照)。オブジェクトをフロントエンドに転送するための Google からの新しいアプローチがあります: リクエスト ファクトリです。それは本当によさそうだし、私は今これを試してみます。

Edit2: リクエスト ファクトリは完全に機能し、RPC よりもはるかに便利です。

4

4 に答える 4

2

RPC to Hibernate を作成したとき、この例をフレームワークとして使用しました。「基本」セクションは DTO を正当化しないと感じたので、ソース コードをダウンロードして「統合戦略」と呼ばれるセクションを読むことをお勧めします。このチュートリアルで説明しなかったことの 1 つは、Web ページからの受信部分と送信部分 (JS に変換されます) です。そのため、ソース コードをダウンロードして、各 DTO の送受信方法を確認することをお勧めします。

スタック トレースと、このエラーの解決に役立つと思われるコードを投稿してください。

Google の GWT と Hibernate

これ (およびソース コード) を読むには時間がかかる場合がありますが、ロジックを理解するのに役立ちます。

于 2013-05-25T14:05:59.867 に答える
0

私は次のアプローチを使用しました。休止状態のエンティティ クラスごとに、休止状態のものを使用せずにクライアント レプリカを作成しました。また、クライアント <-> サーバー クラス間でデータをコピーするメカニズムもありました。これは機能していましたが、現在の GWT バージョンは hibernate アノテーション付きのクラスで動作するはずだと思います..

于 2013-05-25T13:25:54.060 に答える
0

クライアント プロジェクトでは、Hibernate で強化されたドメイン オブジェクトを DTO に比較的簡単に変換するためにMoo (私が作成しました) を使用しています。

于 2013-05-28T01:08:07.180 に答える