2012-01-12 53 views
0

我一直有一些DataView的問題,總是檢索舊的數據集。即使頁面已被重新加載,IDataProvider也從未更新到數據庫的當前狀態。這裏是我的IDataProvider看起來像:防止DataView在更新後檢索舊數據

private class MyDataProvider implements IDataProvider<Item> { 

    private List<Item> list; 

    private List<Item> getData() { 
     if(list == null) { 
      list = projectLogic.getItems(); 
      Collections.reverse(list); 
     } 
     return list; 
    } 


    @Override 
    public Iterator<Item> iterator(int first, int count){ 
     return getData().subList(first, first + count).iterator(); 
    } 

    @Override 
    public int size(){ 
     return getData().size(); 
    } 

    @Override 
    public IModel<Item> model(Item object){ 
     return new DetachableItemModel(object); 
    } 

    /** 
    * Detaches model after use. This is generally used to null out transient references that can be re-attached later. 
    */ 
    @Override 
    public void detach(){ 
     list = null; 
    } 

} 

分離()已經設置列表爲空,但爲什麼這不會影響我的數據視圖的供應商?

回答

0

看起來很好。

projectlog每次都訪問db嗎?你有沒有在getData()上放置一個斷點?

+0

我測試了它,projectlog每次訪問db。 「斷點」是什麼意思? – Best 2012-01-12 14:41:52