Along with session beans, entity beans provide a powerful abstraction from Java objects to persistent, transactional business logic. CMP entity beans free the bean provider from writing tedious data access code. Business logic can be rapidly developed while leaving the infrastructure to the EJB container. With the EJB 2.0 specification and WebLogic Server 6.0, the EJB container contains optimizations to make CMP entity beans' performance very comparable to hand-coded SQL. As we've seen in this chapter, there are many cases in which the EJB container can optimize CMP entity beans to outperform BMP or hand-coded JDBC code.