2010-01-29 66 views
0

如果我删除实体bean(finder方法)并引入DAO层,是否会有性能改进?我想这样做主要是为了从数据库中读取数据。我的项目中有一个流程,其中有大约15个实体bean查找程序在流程中调用,因此,如果我删除实体bean或引入DAO并将实体bean保留原样,那么性能将有显着提高?我正在使用EJB 2.1。实体Bean查找方法VS DAO?

回答

1

使用实体Bean查找器检索数据加载实体的所有属性,即使您可能只需要其中的一个属性值即可。所以,实际上,EJB finders方法会产生开销,特别是在检索大型数据集时(甚至不会提及何时调用其中的15个)。

因此,要检索大型只读数据集,使用JDBC API直接从Session Bean(我猜你有一个Session Bean门面)直接与数据库交谈可能更好。如果我记得好的话,这种模式被称为Fast Lane Reader

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