概述
在ADF中,实现对VO查询的方法有多种,例如:
1、Designtime时添加相应的Criteria,增加Criteria项并关联到绑定变量,在runtime时赋值给绑定变量并实现查询。
2、在Runtime时使用代码动态创建Criteria和CriteriaRow,以实现查询
3、其他
而当VO对应的主EO中已经定义了唯一性索引,此时有更为简便的方式实现查询,即本文中即将进行说明的使用AlternateKey进行查询。
实现
1、创建新应用,新建数据库连接,基于HR Schema中的employees表创建EO、VO并将VO的实例添加到AM中。
2、打开EO,即Employees,在General面板中添加名为EmailAlternateKey的AlternateKey,由于employees表中有唯一性索引EMP_EMAIL_UK是基于Email字段的,因此在EmailAlternateKey中将Email选到Seleted。
3、在EmployeesView的General面板中同样新建名为EmailAltKey的AlternateKey,在Entity-level Alternate Key中选择在上个步骤中创建好的EmailAltKey。
4、生成AM的实现类,在AM中添加适当代码,以实现查询功能。
5、在AM的Java面板中,将刚编写完成的方法发布到Client Interface,以便下面我们使用业务组件浏览器进行测试。
6、在AM上点击右键,选择“Run”,使用业务组件浏览器进行测试。选择到刚发布成功的方法,运行后在参数输入框内输入已经存在的Email,这里为“SKING”,运行成功:)
7、为验证AltKey使用的是数据表中的唯一性索引,开启日志,重新运行后将日志中的SQL拷贝到PL/SQL Developer中的Explain Plan Window,执行后发现使用的查询为“INDEX UNIQUE SCAN”且对应的Object Name为EMP_EMAI_UK,说明此查询使用的确实是唯一性索引。
本文转自Oracle Seeker:http://oracleseeker.com/2009/09/05/adf_altkey_alternatekey_query/