对于我的GWT项目,
我最初构造了一个列表和一个* KEY_PROVIDER *,以唯一标识列表中的记录。现在,我已经连接到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);
代替?
最佳做法应该是什么?谢谢!
最佳答案
那么ProvidesKey
接口仅在客户端(GWT)上用于标识您的对象。这对于了解选择列表中的哪个对象以及手动选择CellTable
/ CellList
中的另一行非常重要。
如果不指定ProvidesKey
实现,CellWidget将使用DTO的equals函数检查它们是否相等。如果对象本身发生更改,则可能会遇到问题。因此,指定ProvidesKey
实现始终是一种好习惯,并且不取决于您使用的是ListDataProvider
,AsyncDataProvider
还是自定义数据提供程序。
顺便说一句,您的示例中的MyDataProvider
是什么?它是AsyncDataProvider
的子类吗?