0

对于我的 GWT 项目,

我最初构建了一个 List 和一个 *KEY_PROVIDER* 来唯一标识我在 List 中的记录。现在我连接到 Postgres 数据库而不是 List,我想知道是否需要将ProvidesKey的对象传递给数据库,或者在使用数据库时将其完全删除。

较早-

// Make a provider, connect the List with the provider!
final ListDataProvider<Contact> sortProvider = new ListDataProvider<Contact>(KEY_PROVIDER);
sortProvider.setList(CONTACTS);

现在-

// Create a data provider.
MyDataProvider sortProvider = new MyDataProvider();
sortProvider.addDataDisplay(table);

我不确定现在需要怎么做?

我需要通过吗-

MyDataProvider sortProvider = new MyDataProvider(KEY_PROVIDER);

反而?

最佳实践应该是什么?谢谢!

4

1 回答 1

1

那么该ProvidesKey接口仅用于客户端(GWT)来识别您的对象。这对于了解选择列表中的哪个对象以及手动选择CellTable/中的另一行非常重要CellList

如果您没有指定ProvidesKey实现,CellWidgets 将使用 DTO 的 equals 函数来检查它们是否相等。如果对象本身发生变化,您可能会遇到问题。因此,指定ProvidesKey实现始终是一种好习惯,而不取决于您使用的是 a ListDataProvider、 aAsyncDataProvider还是自定义数据提供者。

顺便说一句MyDataProvider,你的例子是什么?它是 的子类AsyncDataProvider吗?

于 2012-04-22T17:16:34.777 回答