我有 3 层 EJB 应用程序,我需要在显示大量对象(超过 5000 个订单)的胖客户端(桌面 Java 应用程序)上创建一个视图。每个对象都有子属性,这些子属性也是复杂对象,例如:
class Address
{
String value
// other properties
}
class Order
{
public String Number
// this is collection of complex object and I need first and last object to show it's
// properties in view
public List<Address> getAddresses()
// other properties
}
该视图是一个订单表:
号码 | 第一地址 | 最后地址 | ...
我的第一次尝试是加载完整的订单列表(没有子属性),然后在需要显示时动态下载子对象。但是当我有 10000 个订单并开始快速滚动时,UI 变得无响应。
然后我尝试加载需要在表格中显示的所有订单和所有子项,但 UI 变得非常沉重和缓慢,可能是因为内存成本)。而且它根本不是胖客户端,因为我从 db 下载了几乎所有数据。
解决此任务的最佳实践是什么?