2012-09-18 20 views
1

在這段代碼中我取​​的用戶名和密碼的用戶使用GWT RequestFactoryRequestFactory預先抓取集合時將它設置爲懶在休眠

userContextProvider.get().getUser(userName, password).with(extraData). 
    fire(new Receiver<User>() { 
     @Override 
     public void onSuccess (User user) { 
     //Do something 
     @Override 
     public void onFailure(ServerFailure error) { 
      //Error 
     } 
    }); 

用戶可以有一個或多個組,所以通常情況下,在我而額外本來

String [] extraData = {groups}; 

在吾道我獲取用戶這樣

Criteria c = session.createCriteria(User.class); 
    c.add(Restrictions.eq("user", username)); 
    c.add(Restrictions.eq("password", password));    
    utilisateur = (Utilisateur) c.uniqueResult(); 

和用戶模型中,組集合設置爲懶

但是,在Hibernate中日誌我看到兩個查詢,一個用戶(沒關係),另一個爲陽獅集團

我問題是:RequestFactory中的with是否正常覆蓋Hibernate的延遲加載?以及如何解決它?

回答

3

想一想發生了什麼。

您正在一個請求中要求具有其組的用戶實體。因此,服務器準備用戶和組將它們發送回您的GWT客戶端應用程序。

如果你想在客戶端的延遲抓取,然後在需要時要求用戶輸入,則要求其組,作爲一個單獨的請求(其獨立RequestContext例如,Receiver,並電話fire()