如果我删除实体 bean(查找器方法)并引入 DAO 层,性能是否会有所提高。我想这样做主要是为了从数据库读取数据。我的项目中有一个流程,流程中有大约 15 个实体 bean 查找器调用,因此,如果我删除实体 bean 或引入 DAO 并保持实体 bean 不变,性能是否会有显着提高?我正在使用 EJB 2.1。
最佳答案
使用实体 Bean 查找器检索数据会加载实体的所有属性,即使您可能只需要其中一个属性的值来完成手头的任务。因此,事实上,EJB 查找器方法有开销,在检索大型数据集时尤其如此(更不用说当您调用其中 15 个数据集时)。
因此,要检索大型只读数据集,使用 JDBC API 直接从 Session Bean(我猜您有一个 Session Bean 外观)与数据库对话确实可能更好。此模式称为 Fast Lane Reader如果我没记错的话。
请记住,此模式的实现会牺牲数据一致性来提高性能,因为在原始 JDBC 级别执行的查询不会“看到”对 Enterprise Bean 表示的业务信息所做的挂起更改。
关于java - Entity Bean 查找方法 VS DAO?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2160462/