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;
}
}
デタッチ()すでにヌルにリストを設定されているが、なぜこれが私のデータビューで、プロバイダには影響しませんか?
私はそれをテストし、projectLogicは毎回dbにアクセスしました。 「ブレークポイント」はどういう意味ですか? – Best