2010年4月14日星期三

ADF_070:使用ADF-BC 实现查询功能之十:重写prepareRowSetForQuery方法设置变量

开发运行环境:JDevloper 11.1.2.4.0+ Oracle Database 11gR2 XE

本文最后一次修改日期:2013-07-01

如果你想在查询执行之前,设置查询条件,那么prepareRowSetForQuery方法是再合适不过的地方了。

@Override
public void prepareRowSetForQuery(ViewRowSetImpl vrs) {
vrs.ensureVariableManager().setVariableValue("bv_departmentId", departmentId);
super.prepareRowSetForQuery(vrs);
}

与executeQueryForCollection方法不同,prepareRowSetForQuery方法在方法getQueryHitCount()和getEstimatedRowCount()之前调用。
因此,如果你在executeQueryForCollection中设置变量,很可能getQueryHitCount()和getEstimatedRowCount()返回的数据与实际查询不符。

注意,方法prepareRowSetForQuery是在JDeveloper 11.1.1.5中增加的新特性。

参考文献:
1. http://www.jobinesh.com/2011/05/preparing-viewobjects-query-for.html

没有评论: