2012-04-19 73 views
0

我想從GWT客戶端發起HQL查詢。但是,由於它是異步的,如果我想發起一系列查詢,我該怎麼做?GWT中的Hibernate查詢

異步地將所有數據傳輸到客戶端並使用。但是,如果我想按順序啓動查詢,我該怎麼做?

主要處理這些HQL結果的順序不應該改變。

讓我知道你是否有任何疑問。提前致謝。

回答

1

GWT客戶會解僱你的查詢,你已經在客戶端文件,即定義

yourClient.java

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

的查詢將在第一順序運行第一季度第二季度則第二季度,但不會等待命令q1的完成。一旦請求發送,你不能確定你將得到響應的順序,有可能q2將在q1進行時首先執行並返回響應。

大部分用於從客戶端進行序列操作的操作有點貴。即你可以在AsyncCallback的成功方法上使用查詢。當q1的響應會到時,q2將​​被執行,但如果您有幾個查詢,那麼它是一個昂貴的解決方案。

所以最好的方法是讓服務方法在服務器端執行所有查詢並返回結果地圖,然後以您希望顯示數據的任何順序將其填充到客戶端。

0

在GWT中使用Hibernate並不像您想象的那麼簡單。 Google有一個用於Hibernate的good documentation。你是否已經閱讀過這些文檔?

我可以推薦使用Gilead。我不確定這是否能解決你的問題,因爲我不確定你的問題是什麼。

0

GWT是異步的,所以你必須建立一個基於請求 - 一切>回調

你可以在這樣的情況下做兩件事情:

  • 只有一個RPC服務,聚集的結果爲所有查詢並返回它們。請記住,服務是純java servlets
  • 有許多RPC服務每個都執行一個查詢。對第一個查詢進行查詢,並在回調中顯示(或收集)任何結果並調用第二個查詢,並在其回調中執行相同的過程......等等。