Entity Beans only offer one thing: free persistance (I am of course only referring to CMP). All other services such as transactioning, security, remoteability, etc. can be achieving using a Session Facade.
Therefore, the question comes down to: Is CMP the best/easiest way to persist Java objects to a database? For me that answer would be no. I would much rather prefer to use an fully-featured O/R Mapping Tool such as Hibernate or TopLink and just throw a Session Facade on top of it if need be. Some people may like JDO, I personally don't think the 1.0 Specification delivers the goods when it comes to O/R mapping.
As far as read operations go, Entity Beans don't perform any better here unless you introduce an aggressive caching strategy (which can be done with tools such as Hibernate also). In fact, there is a
pattern called
Fast Lane Reader which is designed to circumvent EJB and use straight
JDBC for some read operations because of the additional overhead in Entity Beans.
[ August 13, 2003: Message edited by: Chris Mathews ]