对于我的GWT项目,
我最初构建了一个List和一个* KEY_PROVIDER *来唯一地标识List中的记录。现在我已经连接到Postgres数据库而不是List,我想知道是否需要将 ProvideKey 的对象传递给数据库,或者在使用数据库时将其完全删除。
EARLIER -
// 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);
代替?
最佳做法应该是什么?谢谢!
答案 0 :(得分:1)
ProvidesKey
接口仅用于客户端(GWT)以识别您的对象。这对于了解选择列表中的哪个对象以及手动选择CellTable
/ CellList
中的另一行非常重要。
如果你没有指定ProvidesKey
实现,CellWidgets将使用你的DTO的equals函数来检查它们是否相等。如果对象本身发生更改,您可能会遇到问题。因此,指定ProvidesKey
实施并不依赖于您是使用ListDataProvider
,AsyncDataProvider
还是自定义数据提供商,这始终是一种好习惯。
BTW你的例子中MyDataProvider
是什么?它是AsyncDataProvider
的子类吗?