您的位置:首页 > 数据库 > Oracle

Tips for using Oracle ADF (Application Development Framework)

2012-02-23 16:00 417 查看
1. 同样的方法,写到AM的实现类里与写到ManageBean里面在调用的时候效果就不一样,还不知道具体原因。比如下面代码,

ViewObject vo = am.findViewObject("View1");
ViewCriteria vc = vo.createViewCriteria();
ViewCriteriaRow vcr = vc.createViewCriteriaRow();
vcr.setAttribute("ID", "123");
vc.add(vcr);
vo.applyViewCriteria(vc);
vo.executeQuery();

if (vo.getEstimatedRowCount() == 1) {
vo.setCurrentRow(vo.first());
}

当写到AM的实现类里时(通过AMClient Interface暴露给DataControl),调用后,当应用跳转到下一个页面(如显示View1的内容)时,页面的确显示的是View1的currentRow的内容;然而如果上面代码放到ManageBean中,则调用后应用跳转到下一个页面时,页面并没有显示选中的currentRow,而很奇怪的,显示的是View1正常结果集里面的第一条数据。

2.注意在调用如上的方法后,一定要在最后加上下面一句,否则会对后面的vo query产生影响,切记切记!

vo.applyViewCriteria(null);
Debug经验:关键code一定要一步一步的debug,不要想当然,比如下面这段code, vo.executeQuery()怎么知道返回的就是DafQAVerifyView表中全部的记录?!万一前面有个家伙没有做把ViewCriteria清空怎么办?!

DafQAVerifyViewImpl vo = (DafQAVerifyViewImpl)findViewObject("DafQAVerifyView1");
vo.executeQuery();
vo.findAndSetCurrentRowByKey(qaVerifyRow.getKey(), 0);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐