2012-01-12 10 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

私にはうまく見えます。

projectLogicは毎回データベースにアクセスしますか? getData()にブレークポイントを設定しましたか?

+0

私はそれをテストし、projectLogicは毎回dbにアクセスしました。 「ブレークポイント」はどういう意味ですか? – Best

関連する問題