Entity Bean

An "Entity Bean" is a type of Enterprise JavaBean, a server-side Java EE component, that represents persistent data maintained in a database. An entity bean can manage its own persistence (Bean managed persistence) or can delegate this function to its EJB Container (Container managed persistence). An entity bean is identified by a primary key. If the container in which an entity bean is hosted crashes, the entity bean, its primary key, and any remote references survive the crash.

In EJB 3.0, entity beans were superseded by the Java Persistence API (which was subsequently completely separated to its own spec as of EJB 3.1). Entity Beans have been marked as a candidate for pruning as of Java EE 6 and are therefore considered a deprecated technology.

Entity Beans before EJB 2.0 should not be used in great numbers because each entity bean was in fact a RMI stub with its own RMI connection to the EJB server. Obtaining 1000 entity beans as a single operation would result in 1000 simultaneous internet connections to the RMI back-end. Since TCP/IP only supports 65536 ports you are essentially limited to using 65536 entity beans at a time. For example, if a client application wanted to monitor the state of 1024 database entries it would take 1024 entity bean references and thus 1024 RMI connections to the EJB server, the EJB server would in turn need to support all 1024 connections from each client application, and would be limited to serving at most 64 client applications at which point all further internet connections would be ignored. These limitations are impossible to overcome when using entity beans over RMI.