容器管理持续化示例1、在你创建两个entity beans之间的一个关联关系前,你必须首先使用New Enterprise Bean向导创建这两个bean。 2、要显示Relationships标签,选中EJB JAR并选择Relationships标签。 3、要增加或编辑一个关联关系,到Relationships标签下单击相应按钮。 4、显示Add(或Edit) Relationship对话框(Add Relationship对话框和Edit Relationship对话框是一样的。) 在Edit Relationship对话框(TeamJAR)中有一个示例。 容器管理持续化的主键 如果主键类不属于J2SE或J2EE标准库,那么你必须自己实现这个类并将其随同entity bean一起打包。例如,如果你的entity bean需要一个复合的主键(由多个字段组成),那么你必须提供一个自定义的主键类。 主键类 在下面的示例中,PurchaseOrderKey类实现了PurchaseOrderEJB这个entity bean的复合主键。这个主键由两个字段productModel和vendorId组成,它们的命名必须匹配entity bean类中的两个持续化字段。
对于容器管理持续化的情况,一个主键类必须满足以下条件: 1、类的访问控制修饰是public。 2、所有字段声明为public。 3、字段是bean的持续化字段的子集。 4、类有一个public类型的默认的构造函数。 5、类实现hashCode()方法和equals(Object other)方法。 6、类可序列化。 Entity Bean类中的主键 在PurchaseOrderBean类中,下面的访问方法定义了组成主键的持续化字段(vendorId和productModel):
下面的代码说明了PurchaseOrderBean中的ejbCreate方法。ejbCreate方法的返回值类型是主键,但是返回值是null。尽管不是必须的,但是null返回值在容器管理持续化中是被推荐的。这种做法可以节省开销,这是因为bean可以不必为了返回值对主键类进行例示。
生成主键值 对于有些entity bean,主键的值代表着一个商业实体。例如,在一个表现对一个支持中心的电话呼叫的entity bean中,主键可能包含一个时间戳,它反映了接收到呼叫的时间。但是对一起另外一些bean,主键的值可能是随机的--只要保证它是唯一的。在容器管理持续化中,主键的值可以由EJB容器自动生成。要利用这个功能,一个entity bean必须满足以下条件: 1、在部署描述中,主键类被定义为一个java.lang.Object。不能指定主键字段。 2、在home接口中,findByPrimaryKey方法的参数必须是java.lang.Object。 3、在entity bean类中,ejbCreate方法的返回值必须是java.lang.Object。 在这些entity bean中,主键值位于一个内部区域,只有EJB容器可以对其进行访问。你不能将主键与一个持续化字段或其它实例变量发生联系。但是,你可以通过调用getPrimaryKey方法以获得bean的主键,你也可以通过调用bean的findByPrimaryKey方法以对其进行定位。 上一篇:在GoF模式以外(1) 下一篇:Bean管理持续化实例 更多相关文章
|
推荐文章
精彩文章
|