0

如果我删除实体 bean(查找器方法)并引入 DAO 层,是否会提高性能。我想这样做主要是为了从数据库中读取数据。我的项目中有一个流程,其中大约有 15 个实体 bean finder 调用在流程中,所以如果我删除实体 bean 或引入一个 DAO 并保持实体 bean 不变,性能会有显着提高吗?我正在使用 EJB 2.1。

4

1 回答 1

1

使用实体 Bean 查找器检索数据会加载实体的所有属性,即使您可能只需要其中一个属性的值来完成手头的任务。因此,确实,EJB finders 方法有开销,在检索大型数据集时尤其如此(更不用说调用其中的 15 个)。

因此,要检索大型只读数据集,最好使用 JDBC API 直接从 Session Bean(我猜你有一个 Session Bean 外观)与数据库对话。如果我没记错的话,这种模式被称为Fast Lane Reader 。

请记住,这种模式的实现会牺牲数据一致性来提高性能,因为在原始 JDBC 级别执行的查询不会“看到”对 Enterprise Bean 表示的业务信息所做的未决更改。

于 2010-01-29T07:55:54.923 回答