在Oracle ADF,JDeveloper中生成主键的序列号.docVIP

在Oracle ADF,JDeveloper中生成主键的序列号.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
在Oracle ADF的序列号 如果您已经创建了一个实体对象的主键字段。现在,你将如何产生最大的序列号将被放置在? 有两种,使用行触发器或使用应用的获得主键。 假设你HR模块中的员工表实体对象。您还创建视图对象,并添加这个视图对象默认应用程序模块。表有一个EMPLOYEE_ID。 第一了数据库触发器第二了在JDeveloper中的应用的。 1 - CREATE OR REPLACE TRIGGER employees_generate_pk BEFORE INSERT ON employees FOR EACH ROW BEGIN SELECT employees_seq.nextval INTO :new.employee_id FROM dual; END; 这段代码假定你已经创建了一个名为“employees_seq”的序列来生成主键的下一个值。 2 - 编辑Employee实体对象的employee_id数据类型“DBSequence”,如下图所示。 DBSequence是一个特殊的。 当你插入一个新的,ADF负。 当你,数据库触发器生成ADF的查询 在JDeveloper中序列 下面的步骤实现 EMPLOYEE_ID字段的数据类型,实体对象的属性页复选框。 创建一个新的视图对象“Seq_Employee”通过查询只读访问 select nvl(max(employee_id)+1,1) seq_nofrom hr.employees Employee实体对象使用“View Accessors”页面,并添加一个。如下图所示“Seq_Employee”视图对象。 现在生成员工实体对象的实体类如下图所示 为“Seq_Employee”这个视图对象生成视图行类。 创建视图对象类的同时,不要忘记点击“”复选框。 默认情况下,JDeveloper将命名类“Seq_EmployeeRowImpl”。 EmployeesImpl 实体对象类,编辑doDML()方法。 编辑方法看起来像下。 protected void doDML(int operation, TransactionEvent e) { if (operation==DML_INSERT){ RowSet seqForThisEmp = (RowSet) getSeq_Employee(); Seq_EmployeeRowImpl nextSeqNoRow =(Seq_EmployeeRowImpl) seqForThisEmp.next(); Number next_seq = nextSeqNoRow.getSeqNo(); this.setEmployeeId(next_seq); } super.doDML(operation, e); } 这个方法ADF执行插入触发。这的方法访问为EMPLOYEE_ID下一个序列号并设置为当前行值。

文档评论(0)

803322fw + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档