Java 防止DataView在更新旧数据后检索旧数据

Java 防止DataView在更新旧数据后检索旧数据,java,wicket,Java,Wicket,我在DataView中遇到了一些问题,因为它总是检索旧的数据集。即使页面已重新加载,IDataProvider也从未更新到数据库的当前状态。以下是我的IDataProvider的外观: private class MyDataProvider implements IDataProvider<Item> { private List<Item> list; private List<Item> getData() {

我在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;
    }

}
私有类MyDataProvider实现IDataProvider{
私人名单;
私有列表getData(){
if(list==null){
list=projectLogic.getItems();
收款。反向(列表);
}
退货清单;
}
@凌驾
公共迭代器迭代器(int-first,int-count){
返回getData().subList(first,first+count).iterator();
}
@凌驾
公共整数大小(){
返回getData().size();
}
@凌驾
公共IModel模型(项对象){
返回新的DetachableItemModel(对象);
}
/**
*使用后分离模型。这通常用于清空可在以后重新附加的临时引用。
*/
@凌驾
公共图书馆{
列表=空;
}
}
detach()已将列表设置为null,但为什么这不会影响我的dataview中的提供程序?

看起来不错


projectLogic是否每次都访问数据库?您是否在getData()上设置了断点?

我对其进行了测试,每次projectLogic都会访问数据库。“断点”是什么意思?