2012-04-19 15 views
0

私はGWTクライアントからHQLクエリを起動したいと思っていました。しかし、非同期になると、一連のクエリを実行したい場合は、どうすればよいですか?GWTのHibernateクエリ

非同期にすべてのデータがクライアントに転送され、使用されます。しかし、順番に質問をしたいのですが、どうすればいいですか?

主に、これらのHQL結果の処理順序は変更しないでください。

ご質問がある場合はお知らせください。前もって感謝します。

答えて

1

GWTクライアントがクエリがQ2が、Q2は待ちませんその後、シーケンス最初のQ1上で実行されます

Query q1; //execute method first request 
Query q2; // execute method second request 

yourClient.java

つまりあなたは、クライアントのファイルで定義されているために、クエリを起動しますq1の完了。要求が送信されると、応答を得る順序を保証することができないため、q2が実行され、q1の処理中に最初に応答が返される可能性があります。

クライアント側からシーケンスを作成するためのほとんどの操作は、少し高価です。つまり、AsyncCallbackの成功メソッドでクエリを使用できます。 q1の応答が来るとq2が実行されますが、複数のクエリがある場合は高価な解決策になります。

最高のことは、サーバー側ですべてのクエリを実行し、結果のマップを返すサービスメソッドを作成し、クライアント側でデータを表示する順序でデータを入力することです。

0

GWTでHibernateを使用することは、あなたが考えるほど単純ではありません。 Googleは、Hibernateの使用のためにgood documentationを持っています。あなたはすでにその文書を読んでいましたか?

私はGileadの使用をお勧めします。私はあなたの問題が何であるか正確には分からないので、これがあなたの問題を解決するかどうかは分かりません。あなたはこのような場合には2つのことを行うことができます

0

GWTはそうあなたが要求 - に基づいて、すべてを構築する必要が非同期である>コールバック

  • は結果を収集し、単一のRPCサービスを持っていますすべてのクエリのためにそれらを返します。サービスはプレーンなJavaサーブレットであることを覚えておいてください。
  • それぞれに1つのクエリを実行する多くのRPCサービスがあります。クエリを最初に作成し、コールバックで結果を表示(または収集)して2番目のクエリを呼び出し、そのコールバックで同じ手順を実行するなど...などがあります。