对于我的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实现始终是一种好习惯,并且不取决于您使用的是ListDataProviderAsyncDataProvider还是自定义数据提供程序。

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

09-12 05:11