唯一性校验
NC6系列 唯一性校验有标准的API可以使用,需要注意的需要依赖元数据文件
使用方式
1. 将需要唯一性校验的元数据字段的注册到唯一性 校验规则表中
2. 代码调用通用校验规则类
示例,客户名称和编码 支持唯一性校验
1. 参考如下sql 查询出来 名称和编码字段的 元数据ID
--e4f48eaf-5567-4383-a370-a59cb3e8a451
select id from md_class where defaulttablename='bd_customer';
--客户名称 1ab14778-78b5-484b-8871-f57e7f45bc00
select displayname, id from md_property where classid='e4f48eaf-5567-4383-a370-a59cb3e8a451';
2. 客户名称的ID是1ab14778-78b5-484b-8871-f57e7f45bc00
3. 拼装如下两个sql
Insert into BD_UNIQUERULE
(DATAORIGINFLAG,DR,ERRORCODE,ISCHECKNULL,ISDEFAULT,MDCLASSID,PK_RULE,RULECONTENT,RULECONTENT2,RULECONTENT3,RULECONTENT4,RULECONTENT5,RULECONTENT6,TS)
values (1,0,'32002','N','Y','e4f48eaf-5567-4383-a370-a59cb3e8a451','0001Z0100000000A7J8Z','名称唯一性',null,null,null,null,null,'2018-01-02 12:39:30');
Insert into BD_UNIQUERULE_ITEM
(DATAORIGINFLAG,DR,MDCOLUMNID,MDCOLUMNNAME,PK_RULE,PK_RULEITEM,TS)
values (1,0,'1ab14778-78b5-484b-8871-f57e7f45bc00','客户名称','0001Z0100000000A7J8Z','0001Z0100000000A7J90','2018-01-02 12:40:03');
检查一下
select * from bd_uniquerule where mdclassid='e4f48eaf-5567-4383-a370-a59cb3e8a451' ;
select * from bd_uniquerule_item where pk_rule='0001Z010000000047J8Z';
4. 代码调用
protected void insertValidateVO(T vo) throws BusinessException {
IValidationService validateService = ValidationFrameworkUtil
.createValidationService(getInsertValidator());
validateService.validate(vo);
}