ADF VO排序及VO的三种查询模式(转)
来源:互联网 发布:练口才的软件 编辑:程序博客网 时间:2024/04/28 21:14
ADF为开发人员提供了两种级别的排序,即数据库级别的排序及内存级别(In-Memory)的排序。需要同时使用这两种排序法,才能取得合适的排序效果。
- 数据源排序和缓存排序
数据源的排序只是针对从数据源选取数据时的排序,当对VO进行插入/删除操作时,修改并不会立即Commit至数据库,而是存储在EO/VO中,这就导致这种排序法对于不在数据库中存在实体行的数据是无效的,也是需要使用缓存排序(In-Memory)方式的原因。 - VO的查询模式(View Object's SQL Mode)
在开始VO的In-Memory排序之前,首先应该了解VO的查询模式。
ADF中一个VO具有如下查询模式- ViewObject.QUERY_MODE_SCAN_DATABASE_TABLES
VO的默认查询模式,该模式下VO每次executeQuery时会从数据库检索数据 - ViewObject.QUERY_MODE_SCAN_VIEW_ROWS
检索已经存在于VO的Row set中的数据,允许在此查询模式下使用VO的In-Memory Filtering - ViewObject.QUERY_MODE_SCAN_ENTITY_ROWS
检索存储于EO缓存中的数据
可以使用setQueryMode()方法进行VO查询模式的设置。可以单独设置一个查询模式或使用Java的OR(|)设置多个查询模式。例如setQueryMode(ViewObject.QUERY_MODE_SCAN_DATABASE_TABLES | ViewObject.QUERY_MODE_SCAN_ENTITY_ROWS)
当设置多个查询模式时,会自动跳过重复行。
设置过查询模式后,当执行executeQuery()方法时,查询模式的设置即可生效。 - ViewObject.QUERY_MODE_SCAN_DATABASE_TABLES
- In-Mamory排序
使用setSortBy()方法进行针对VO的运行时In-Memory排序。setSortBy()方法的输入参数类似于SQL中的order by子句,不同的是将列名称替换为VO上的Attribute Name。例如setSortBy("ManagerId desc, EmployeeId");
根据查询模式的设置不同,当执行executeQuery()时,setSortBy()会自动转换为相应的排序方法。如当使用数据库检索时,会将setSortBy转换为ORDER BY子句,当使用In-Memory查询时,会将setSortBy转换为SortCriteria对象。
使用示例:vo.setSortBy("ManagerId");vo.setQueryMode(ViewObject.QUERY_MODE_SCAN_VIEW_ROWS);vo.executeQuery();
只需要在如插入数据时执行该语句,即可完成In-Memory的排序功能。 - 自定义VO的排序方法
当需要的排序方法比较复杂,使用setSortBy设置排序规则无法满足需求时,可以通过重写VO的public void sortRows(Row[] rows)方法和public Comparator getRowComparator()方法达成目的。其中sortRows方法即是进行In-Memory排序时执行的排序方法;getRowComparater方法返回一个Comparator类型对象,被VO的compareTo()方法调用。
0 0
- ADF VO排序及VO的三种查询模式
- ADF VO排序及VO的三种查询模式(转)
- Oracle ADF VO排序及VO的查询模式
- ADF 三种改变VO查询条件方式
- Oracle ADF获取AM及VO的方法
- Oracle ADF VO常用的API
- ADF:动态控制VO数据源
- ADF VO知识
- ADF VO知识
- ADF: 区分VO定义和VO实例
- ADF:如何使用VO处理查询条件的值属于某一动态值列表的问题
- vo
- vo
- ValueObject 介绍(VO 模式)
- 什么是ValueObject (VO 模式)
- ValueObject 介绍(VO 模式)
- Oracle EBS OAF(ADF) VO(View Object)开发中的绑定方式(Binding Style)的介绍
- Oracle EBS OAF(ADF) VO(View Object)开发中的绑定方式(Binding Style)的介绍
- grid++report中篇
- 指针专题
- 三种快速排序算法以及快速排序的优化
- POJ 1961:Period
- C/C++语言基础
- ADF VO排序及VO的三种查询模式(转)
- 日语学习之沪江N3基础 20150627 -6
- 第十六周 项目二--有些数的阶乘就不算了
- 在EditText中插入表情图片 (CharacterStyle&SpannableString),TextView中显示HTML和图片
- windows下copy批处理命令
- swift 学习笔记一
- sgu 269
- 基于Struts2+Hibernate的学生信息管理系统实例
- 迪米特法则