您的位置:首页 >> 编程开发 >> Java >> JavaBeans >> 正文
JavaBeans RSS
 

全面研读EJB2.0(3)

http://www.rdxx.com 01年11月17日 11:08 互联网 我要投稿

标签: EJB
 

 

全面研读 EJB 2.0
2001-04-05· --·wsdn

  EJB 2.0 中的一个示例 CMP 实体

  在 EJB 2.0 中,容器管理的实体 bean 被定义为抽象的,而且它的持久性字段并不在 bean 类中直接定义。作为替代,开发了一种抽象的持久性方案,从而允许 bean 提供者间接地声明持久性字段和 bean 关系。下面是 Employee bean 的一个示例,它使用了新的抽象持久性方案。请注意,该 bean 类中未声明任何持久性字段。

  public abstract EmployeeBean implements
  javax.ejb.EntityBean {
.   // 实例字段
   EntityContext ejbContext;

   // 容器管理的持久性字段
   public abstract void setIdentity(int identity);
   public abstract int getIdentity();
   public abstract void setFirstName(String firstName);
   public abstract String getFirstName();
   public abstract void setLastName(String lastName);
   public abstract String getLastName();

   // 容器管理的关系字段
   public abstract void
    setContactInfo(ContactInfo info);
   public abstract ContactInfo
    getContactInfo();

   ...
  }

  在此 bean 的 XML 部署描述符中,抽象的持久性方案声明容器管理的各个字段和各种关系。

  <ejb-jar>
  <enterprise-beans>
  <entity>
  <ejb-name>EmployeeEJB</ejb-name>
   ...
  <persistence-type>Container</persistence-type>

   ...
  <cmp-field><field-name>identity</field-name></cmp-field>

  <cmp-field><field-name>firstName</field-name></cmp-field>

  <cmp-field><field-name>lastName</field-name></cmp-field>

   ...
  </entity>
  </enterprise-beans>
  <dependents>
  <dependent>
  <dependent-class>ContactInfo</dependent-class>



  <dependent-name>ContactInfo</dependent-name>

  <cmp-field>street</cmp-field>
  <cmp-field>city</cmp-field>
  <cmp-field>state</cmp-field>
  <cmp-field>zip</cmp-field>
  <cmp-field>homePhone</cmp-field>
  <cmp-field>workPhone</cmp-field>
  <cmp-field>email</cmp-field>
   ...
  </dependent>
  <relationships>
  <ejb-relation>
  <ejb-relation-name>Employee-ContactInfo</ejb-relation-name>

  <ejb-relationship-role>
  <ejb-relationship-role-name>
   employee-has-contactinfo

  </ejb-relationship-role-name>
  <multiplicity>one</multiplicity>
  <role-source>
  <ejb-name>EmployeeEJB</ejb-name>

  </role-source>
  <cmr-field>
  <cmr-field-name>contactInfo</cmr-field-name>

  <cmr-field-type>ContactInfo</cmr-field-type>

  </cmr-field>
  </ejb-relationship-role>
  <ejb-relationship-role>
  <ejb-relationship-role-name>
   contactinfo_belongsto_employee

  </ejb-relationship-role-name>
  <multiplicity>one</multiplicity>
  <role-source>
  <dependent-name>ContactInfo<dependent-name>

  </role-source>
  </ejb-relationship-role>
  </ejb-relation>
  </relationships>
  <ejb-jar>

  用来描述容器管理的关系的 XML 元素可能变得非常复杂,因为他们必须处理各种关系的对应性和方向(单向的还是双向的)。上面的代码段说明,为了描述 bean 与其从属对象类之间的简单关系,您需要哪些元素。虽然即使是简单的关系也会被转换为冗长的 XML,但所有这些元素都是必需的,以便持久性管理器能够将复杂的对象图映射到数据库中。

9 7 3 1 2 3 4 4 8 :


 
 
打印本文
 
 
  热点搜索
 
 
 



Valid XHTML 1.0 Transitional
Copyright ©2005 - 2008 Rdxx.Com,All Rights Reserved
收藏本页
收藏本站