什么时候适合在 Websphere 中使用数据 bean 或访问 bean?抱歉,如果我问的是基本问题,我是 Websphere 的新手。
就我而言,我正在尝试按产品查找目录列表。最初我一直在使用访问 bean。这可行,但有时会返回非常大的结果集/似乎非常占用内存。
CatalogEntryDescriptionAccessBean cedabp = new CatalogEntryDescriptionAccessBean();
Enumeration cde = cedabp.findByCatalogEntry(productCatIdLong);
数据 bean 提供了相同的方法:
CatalogEntryDescriptionDataBean cedabp = new CatalogEntryDescriptionDataBean();
Enumeration cde = cedabp.findByCatalogEntry(productCatIdLong);
为什么我要使用一种 bean 而不是另一种?一种更适合读取或写入数据吗?一个缓存提供的数据是否比另一个提供的数据更新?
更新:
我发现这两个类有如下关系:
CatalogEntryDescriptionAccessBean
|_ CachedCatalogEntryDescriptionAccessBean
|_ CompactCatalogEntryDescriptionAccessBean
|_ CatalogEntryDescriptionDataBeanBase
|_ CatalogEntryDescriptionDataBean
所以 Data Bean 继承自 Access Bean,因此它包含相同的可见方法。
有趣的是,IBM 的文档指出:
访问 bean 提供 ... 对 home 对象的缓存,并减少对企业 bean 的调用流量。使用访问 bean 有额外的好处:
在运行时,访问 bean 缓存企业 bean home 对象,因为查找 home 对象在时间和资源使用方面是昂贵的。访问 bean 实现了一个 copyHelper 对象,当命令获取和设置企业 bean 属性时,该对象减少了对企业 bean 的调用次数。在读取或写入多个企业 bean 属性时,只需要对企业 bean 进行一次调用。
目前,我对数据 Bean 的用途感到困惑,如果访问 Bean 使用 CMP 来减少对实体 Bean 的调用?
我发现了一些更多的文档说明:
数据 bean 是在 JSP 页面中用于从企业 bean 检索信息的 Java bean。一个简单的数据 bean 扩展了它对应的访问 bean 并实现了 SmartDataBean 接口。通过扩展访问 bean,数据 bean 提供了实体 bean 的简单表示(间接):它封装了可以从实体 bean 中检索或设置的属性。