概述:
实体Bean与会话Bean不同,实体Bean是持久的,即使应用程序结束,它仍然存在。它允许共享访问,具有主键。
组成:
1)本地(Local)接口
本地访问EJB,只有在EJB与客户在同一个应用的情况下才可以使用。使用时,它可以与远程接口同时使用。
它可以优化访问EJB,绕过了RMI.
2)远程(Remote)接口
与本地接口最大的不同在于远程接口可以从任何地方访问。
命名:
如果只使用local或Remote接口之一,可使用正常名称。例如HelloWorld和HelloWorldHome。
如果同时使用两种接口,就要用'Local'或'Remote'作为接口的前缀。例如
HelloWorldLocal,HelloWorldLocalHome
HelloWorldRemote,HelloWorldRemoteHome.
3)主键
唯一标识了实体的EJB.由实体bean的一个或多个持久性字段组成,它在部署描述文件中指定。
类型:
1)CMP实体Bean
——容器管理的持久性实体Bean
特点:
由容器控制,容器可以实现高级的数据缓冲和EJB间的复杂关系。
2)BMP实体Bean
——对数据的操作代码由Bean作者提供。
特点:
需要在bean中手工编写所有的持久性逻辑,这样一来使得调试十分困难。但它可以表示复杂的持久性数据。
两种类型的比较:
生命周期:
实体bean的生命周期有三种状态:Does Not Exist --不存在,Pooled--入池,Ready--就绪。
入池Pooled就是把已创建的实体bean移到可用的实例池中。
这三种状态之间的转换和方法调用如下图所示:
小结:
实体bean的内容很多也很杂,多与之前学过的东西相联系,运用对比分析,就会轻松许多了。比如本地接口与远程接口的比较,CMP与BMP的比较等。