EntityBean,SessionBean,databean和accessbean

我一直在努力了解WebSphere Commerce中的Java bean,但我真的很困惑。 请帮帮我。 我需要知道:

EntityBeanSessionBeanDataBeanAccessBean之间有什么区别?它们如何比较?

虽然我发现了Session和Entity之间以及Access和Data之间的区别,但我无法理解它们之间是如何相互关联的。

所有的帮助将非常感谢。

实体bean表示由EJB规范编码的java bean,该java类用于标识表中的记录。 会话bean也是遵循EJB规范的java bean; 但是这个bean可以被认为是一个java类,它有业务逻辑,有或没有与实体bean交互(即DB Data)。 因此,会话bean(例如ProcessRegistrationBean)将作用于实体bean,例如PersonBean。

现在,关于什么是access和databean的问题的第二部分:这两个bean是Websphere应用程序提供的Entity bean的扩展,提供对实体bean的方便访问,隐藏了JNDI查找的复杂性和EJB规范的home / remote接口方法。
这意味着如果你想获得用户的信息,你可以轻松地创建UserAccessBean(由用户的实体bean生成),通过它的no arg构造函数,然后通过设置用户id进行初始化。 幕后的AccessBean使用home接口来访问远程接口,所有这些EJB的东西都发生了,你无需明确地知道它们 – 因此使开发人员更容易。

Databean是其相应访问bean的扩展,即UserDataBean扩展了UserAcessBean。

建议使用AccesBean在java层中,例如SessionBean(这也意味着您不必直接处理实体bean)和JSP层中的DataBean。 这就是所有这些都是相关的

在Java中,几乎所有类都被称为bean。 所以不要混淆。 您展示的不同bean术语是类在您的应用程序中具有的函数的概念。

通常,实体bean代表您域的某个实体。 用户,书籍,汽车或任何东西。 通常有一些属性(名字,姓氏等)。 域的抽象(或概念)对象。 遗憾的是,EJB实体bean是一个域对象的业务控制器,用于处理域对象可能涉及的所有复杂操作(例如创建具有依赖关系的新书,销售书籍,订单簿以及您的域允许对书籍执行的任何操作) )。 你的所有用例。

域对象本身(书籍)及其属性(标题,ISBN号,价格,页面数量)由数据bean表示,数据bean通常映射到某些数据库表和行。

会话bean通常是绑定到用户会话的信息的某种容器(因此具有一些生命周期,因为用户会话将过期)。 如果用户已通过身份validation或用户当前正在编辑哪些数据,则可以是此信息。 因此,会话bean应该具有指向表示用户核心数据的实体bean的指针。

访问bean似乎是“数据访问对象/ DAO”模式中的一些克隆。 这是应用程序范围的类,允许您通过提供诸如“getUserByUsername”之类的方法来访问实体,或者查找用于不同搜索的方法并封装访问数据库和其他存储。