EBS OAF开发中的Java 实体对象(Entity Object)验证功能补充
EBS OAF开发中的Java 实体对象(Entity Object)验证功能补充
(版权声明,本人原创或者翻译的文章如需转载,如转载用于个人学习,请注明出处;否则请与本人联系,违者必究)
EO理论上是仅仅有产品组维护,里面包括其全部的业务逻辑,并提供对应的Expert给自己或者其他产品组使用。而VO是各个组依据须要或基于EO或者仅仅读的SQL而建立的,里面能够依据须要加入自己的业务实现和逻辑。
对于EO内部的验证功能,在开发文档中主要介绍了三种:
1. 在setter里面实现单个属性的验证。这主要是对于没有依赖关系的属性,也就是说它的验证不须要其他会被改动的属性的支持。比方,验证一个数量是不是正数,是不是在一个范围之内;可是假设其也要依赖界面上的输入的计量单位的话,就要考虑row层次上的验证,由于setter的调用顺序是未知的,可能先调用数量的setter,然后再调用计量单位的setter,这样的验证就会有问题了。
2. 在Row层次上进行跨属性的验证.由于在全部须要调用的setter都调用完之后,会调用row层次的验证方法validateEntity().全部行级的跨属性验证都应该放在这里。它的缺点是,每次request中假设有调用setter的话,就会调用row层次的校验,所以在开发文档中有这么一句话,
Any logic which operates at the row level -- and is not particularly sensitive to being called repeatedly --should be included in the validateEntity() method.
也就是说全部行级的且对反复调用不敏感的验证能够放在这里,怎样定义敏感,我的理解是1.每次验证花费的时间非常多;2.一个transaction里多次请求每次都会调用setter,比方大量的PPR事件,会导致多次验证,可能影响用户体验;可是开发文档中尽管这么说了,但并没有说明这样的不能反复调用的验证应该在哪里实现,怎样实现。
3. 进行跨实体属性验证.对于composition的AO来说,这个不是问题,由于detail的验证总是发生在master的验证之前;而对于reference的来说,就要实现相似“调解人”的对象,其须要实现ValidationListener接口。但这样的情况较少,并且适用范围较小。
对于另外一种情况的例外,能够考虑覆盖基类OAEntityImpl的prepareForDML()方法.对于其,Javadoc有以下的说明
Process a row when any operation like insert/update/deleteis performed. User can overwrite this method and add any custom logic, likeinitialize any attribute on insertion.
也就是在构建DML SQL语句之前,我们能够对这个row做一些处理,比方设置一些属性且其仅仅有在保存的时候才须要设置的,如获取sequence之类的(这个我測试过,确实能够);或者做一些仅仅有保存时才须要的验证(这个没有測试过,理论上应该能够,后面有空的话会測试一下).
EBS OAF开发中的Java 实体对象(Entity Object)验证功能补充的更多相关文章
- EBS OAF开发中实体对象和视图对象的属性设置器
EBS OAF开发中实体对象和视图对象的属性设置器 (版权声明.本人原创或者翻译的文章如需转载,如转载用于个人学习,请注明出处:否则请与本人联系,违者必究) 源文: Home > Oracle ...
- EBS OAF开发中的错误/异常处理(ErrorHandling) (转)
原文地址 EBS OAF开发中的错误/异常处理(ErrorHandling) EBS OAF开发中的错误/异常处理(ErrorHandling) (版权声明,本人原创或者翻译的文章如需转载,如转载用于 ...
- EBS OAF开发中实现參数式弹出窗体
EBS OAF开发中实现參数式弹出窗体 (版权声明,本人原创或者翻译的文章如需转载,如转载用于个人学习,请注明出处:否则请与本人联系,违者必究) 概览 參数式弹出窗体和嵌入式弹出窗体不一样,它拥有独立 ...
- EBS OAF 开发中的OAMessageRadioGroup控件
EBS OAF 开发中的OAMessageRadioGroup控件 (版权声明,本人原创或者翻译的文章如需转载,如转载用于个人学习,请注明出处:否则请与本人联系,违者必究) 简单介绍 RadioGro ...
- EBS OAF开发中怎样实现功能页签(Global Tab)
EBS OAF开发中怎样实现功能页签(Global Tab) (版权声明.本人原创或者翻译的文章如需转载.如转载用于个人学习,请注明出处.否则请与本人联系,违者必究) 功能页签的实现不须要不论什么编码 ...
- EBS OAF开发中怎样通过ReferenceAO进行验证
EBS OAF开发中怎样通过ReferenceAO进行验证 (版权声明.本人原创或者翻译的文章如需转载,如转载用于个人学习,请注明出处:否则请与本人联系,违者必究) Reference AO 除了用于 ...
- Java开发知识之Java面相对象
Java开发知识之Java面相对象上 一丶什么是面相对象 了解什么什么是面相对象.那么首先要了解什么是面相过程. 面相过程的意思就是. 什么事情都亲力亲为. 比如上一讲的排序算法. 我们自己写的. 这 ...
- OAF开发中一些LOV相关技巧 (转)
原文地址:OAF开发中一些LOV相关技巧 在OAF开发中,LOV的使用频率是很高的,它由两部分构成一是页面上的LOV输入框(如OAMESSageLovInputBean),二是弹出的LOV模式窗口(O ...
- memcached—向memcached中保存Java实体需注意的问题
今天以代码实例的形式总结一下向memcached中保存Java实体需注意的问题: memcached工具类代码: package com.ghj.packageoftool; import java. ...
随机推荐
- python:字符串取值
某个字符串为stmp="abcdef54321" 取前面5个stmp[:5] #abcde 取后面5个stmp[-5:] #54321 从前面开始取,不包括最后两个stmp[:-2 ...
- C#。4 数组
一.跳出循环的俩个关键字 1.break与continue. 这两个关键字一般放在循环的花括号里面使用.break——结束整个循环.continue——结束本次循环,进入下次循环. br ...
- css中的clear的正真意义
网上包括w3cschool 的说法都是 不允许浮动.消除浮动 这样的说法,却看了还是不知道什么意思,一些地方说不通. 所以找到w3c css 的英文文档,如下是节选: 'clear'Values ha ...
- StringEscapeUtils的使用
使用commons-lang.jar import org.apache.commons.lang.StringEscapeUtils; public class T { public static ...
- shell获取日期(昨天,明天,上月,下月)
今天 sh-4.1$ echo `date +%Y-%m-%d` 2016-08-17 昨天 sh-4.1$ echo `date -d "last day" +%Y-%m-%d` ...
- Linux最小化安装后配置网络
vi /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0HWADDR=00:0C:29:DD:AD:B9TYPE=EthernetUUID=d7 ...
- 高性能ORM框架XLinq功能详细介绍
之前简单介绍了XLinq的一些功能,有很多功能都没有提到,现在给XLinq加了一些功能,这次把所有功能都介绍一遍. 设计目标 易用性 在使用一个框架的时候 应该没几个人会喜欢写一大堆的配置文件吧 也应 ...
- (一)chrome扩展 - API小记
browserAction 设置browser action的badge文字,badge 显示在图标上面 chrome.browserAction.setBadgeText({text:"i ...
- eclipse python开发环境搭建
eclipse python开发环境搭建[非原创] 1.在www.eclipse.org官网下载Eclipse Classic 4.2.2,Win7 64位下载eclipse-SDK-4.2.2-wi ...
- jquery的鼠标移入移出事件hover、mouseenter、mouseleave、mouseover、mouseout
hover:鼠标进入元素的子元素时不会触发‘鼠标移开’的事件: mouseenter.mouseleave:效果与hover相同: mouseover: 鼠标进入元素和进入它的子元素时都会触发‘mou ...