我一直在使用DataView来解决旧数据集的问题。即使页面已重新加载,IDataProvider也从未更新到数据库的当前状态。以下是我的IDataProvider的样子:
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;
}
}
detach()已经将列表设置为null但为什么这不会影响我的数据视图中的提供程序?
答案 0 :(得分:0)
对我来说很好。
projectLogic每次都访问数据库吗?你在getData()上放了一个断点吗?