快速业务通道

构建跨越联合数据的实体EJB - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-20
所有的缺省设置而不采取进一步的行动,那么在 EJB 容器试图执行与创建、除去和查找 EJB 相关联的方法时,会出现运行时异常。所有这样的方法都准备或试图执行数据库写操作,这对于我们正在使用的视图类型是无效的。(缺省情况下,生成的findByPrimaryKey() 方法执行 SELECT ... FOR UPDATE ,这意味着将来可能会出现一个写操作。对于这里的视图定义来说,这种操作是无效的)。

此外,试图设置属性值的EJB 业务方法(“setter”方法)将导致运行时异常的出现,因为它们也会启动数据库写操作。在本节和下一节中,我们将看到如何通过 EJB 编程向导来修改缺省值,以及如何定制生成的EJB 部署代码以防止出现不必要的数据库写操作尝试,同时也使抛出的异常更容易说明:为什么给定的底层数据模型不支持某些 EJB 操作。

要创建这样的CMP 实体 bean:

切换至 J2EE ****图。如有必要,可以按照 WSADIE的标准过程为您的实体 bean 创建一个 EJB 项目。

按照标准过程创建 CMP 实体 EJB。

将 bean 命名为与别名相同的名字。

添加对应于别名中各列的属性,要注意为每个属性指定适当的数据类型,并且要将适当的属性指定为键字段(它应映射到别名的主键列)。再次提醒,属性名应与列名对应。

调用 EJB 数据建模向导并选择自顶向下建模。

突出显示您的EJB,在其上单击鼠标右键,然后选择 Open With -> Mapping Editor。选择 top-down modeling。

单击 Next,确保数据库名与模式名设置正确。数据库名应映射到 DB2 客户机知道的联合数据库(在我们的环境中,它是 djdb )。模式名应映射到已授权的联合数据库用户(在我们的环境中,它是 user1 )。

取消选择 Generate DDL框,然后单击 Finish。

验证 EJB 到数据库的映射是否成功完成

突出显示您的EJB,在其上单击鼠标右键,然后选择 Open With -> Mapping Editor。

检查 Tasks 面板以确保没有出现过错误报告。

从您 bean的远程接口除去所有“setter”方法。

在 J2EE 面板中扩展您的EJB,并突出显示您 bean的远程接口。Outline 面板将显示 bean的远程接口内的所有方法。

突出显示每个 set...() 方法,在其上单击鼠标右键,然后选择 Delete。

将 EJB findByPrimaryKey() 方法的访问意图(access intent)设置为只读。

构建跨越联合数据的实体EJB(7)

时间:2011-01-28 IBM C.M. Saracco

在 J2EE 面板中,突出显示您的EJB,在其上单击鼠标右键,然后选择 Open With -> EJB Extension Editor。

在该编辑器的Methods 面板中,扩展您的EJB 以显示 bean的home 接口中的所有方法。

突出显示 findByPrimaryKey() 方法,将 Access Intent值改为只读。

保存您的更改( Control-S),然后关闭编辑器。

将 EJB 绑定到先前为联合数据库创建的适当数据源。

突出显示您的EJB,在其上单击鼠标右键,然后选择 EJB Quick Links -> Bind Data Source。

在面板的Datasource 区域输入有效的JNDI 名、用户名和密码。例如,在我们的测试环境中,我们输入 jdbc/Federated 作为 JNDI 名,输入 user1 作为用户名,以及输入 pass1word 作为密码。

保存您的更改( Control-S),然后关闭编辑器。

照常为 bean 生成部署代码(突出显示您的EJB,在其上单击鼠标右键,然后选择 Generate Deploy Code)。

步骤 3:修改生成的代码

在为部署您的bean 而生成的代码中,有一小部分必须修改,以防止 create() 和 remove() 方法试图从 bean 所基于的视图插入和删除数据。从 bean的home 接口除去 create() 和 remove() 方法是不能接受的,因为 EJB 规范要求这些方法必须存在。将这些方法的访问意图设置为只读也是没有意义的,因为它们旨在产生 INSERT 和 DELETE 语句。相反,您应该修改这些方法的

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号