OAF中Delete、Update表内容方法小结

OAF做更新和删除之前都需要先查询,并且通过VO来操作,VO内部会调用EO,EO主要用于数据验证 

 

按照BC4J的架构,通常是使用CO调用AM,在AM中操作VO以删除或跟新数据,但是当处理具有关联关系的数据时,例如删除一个PoHeader,那么则应该重写PoHeaderEO的remove()方法,以删除PoLine数据.

 

首先放AM删除/更新代码

 

 

使用这份代码有两个限制:

1.只能删除单行,如果去掉"break"来删除多行,迭代器返回会越界返回NULL值

2.如果数据没有绑定到WebBean控件,那么fetchedRowCount=0;删除不成功

 

仅仅是针对页面的单个绑定行,不知道ORACLE为什么还要把它作为示例代码。

 

为了消除第二条限制,需要做一点修改

这样就可以以纯代码方式操作。

 

如果要删除多行,那么就不能用上面的代码了,我自己写了一段如下

 

这段代码可以使用适用多种情况。

 

当然也可以针对具体情况再做点优化,例如,如果代码中用到的VO没有绑定页面控件,那么可以简单写成

 

 

这里主要是涉及迭代器初始位置的问题。

 

 

下面贴一段关联删除的代码,首先要为两个关联的EO创建关系,然后把这段代码用于EO的remove

 

删除一个PoHeader,重写PoHeaderEO的remove()方法,以删除PoLine数据.还限制了可以删除的订单类型哦!

 

 

做更新的话,就把remove()换成setAttribute或setxxxx()就好了

这两个方法和删除都会改变VO状态为modify,如果不提交事务的话会被认为是脏数据的。

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值