0

鉴于 IDataProvider

public interface IDataProvider<T> extends IDetachable {

    IModel<T> model(T object);
}

我应该在这里返回什么型号?在javadoc中有写:

此数据提供者的使用者使用回调来包装从 #iterator(int, int} 检索到的对象与模型(通常是可拆卸的模型)。

假设我有一个 LoadableDetachableModel 从数据库加载对象列表。该模型是 dataProvider 的输入。为什么要再次将每个对象包装在可拆卸模型中?

4

2 回答 2

1

对于不可序列化的对象,它应该是 LDM - 因此它们可以在后续请求时重新加载。对于可序列化的对象,如果您不介意存储在会话中的对象,您可以使用普通的 Model<T>。

您提供的模型将可用于填充的行,因此当您在行上下文中工作时,例如标签的一些 AJAX 更新,您只需在渲染阶段从 db 加载单个对象而不是整个列表。

我常用的方法是直接加载实体并为其提供迭代器,而不将它们包装在模型中。然后我在#model() 中为实体提供包装 LDM。

于 2013-05-07T11:52:12.113 回答
0

您说 LDM 是数据提供者的输入。在您的情况下,哪个对象处理分页?

我们经常直接调用我们的服务来检索大小和对象。我们按预期使用模型。加载 1 个单个对象。

于 2013-05-07T11:56:38.060 回答