hibernate validate 自定义对类的验证,可以同时验证几个字段的关联关系
2017-09-07 09:34
447 查看
最近开发接口,要求验证几个有关联的字段,但是在资料中,都是看到类似于@notnull,@notempty的注解,都是对单个字段,并不能满足我们平时开发的需求。
我们遇到的是,当选择某个字段时,另外一个字段不能为空,这样具有逻辑判断的验证,
1、在hibernate validation 中,提供了对类的注解。可以实现此需求
定义注解。
@Retention(RetentionPolicy.RUNTIME)
//element.type 注解用于类
@Target(ElementType.TYPE)
@Documented
@Constraint(validatedBy=BaseValAnno.class)
//@Repeatable(LinkVals.class)(可重复注解同一字段,或者类,java1.8后支持)
public @interface BaseVal {
String message() default "格式不正确";
Class<?>[] groups() default {};
Class<? extends Payload>[] payload() default{};
}
2.对注解进行定义,继承 ConstraintValidator,接口,
3.自定义注解的使用。
/*
1、由于是对类的注解,所以存在的逻辑关系是先对属性验证,然后对类的逻辑关系验证,
2、@GroupSequence是对注解分组的排序,可以通脱他判断先后顺序
*/
@GroupSequence({first.class,second.class,third.class,fourth.class,BaseInfo.class})
@BaseVal(groups={fourth.class})
public class BaseInfo {
//private int id;
@NotEmpty(message="年度不能为空",groups={first.class})
private String niandu;
@NotEmpty(message="处罚主体不能为空",groups={first.class})
private String areacode;
我们遇到的是,当选择某个字段时,另外一个字段不能为空,这样具有逻辑判断的验证,
1、在hibernate validation 中,提供了对类的注解。可以实现此需求
定义注解。
@Retention(RetentionPolicy.RUNTIME)
//element.type 注解用于类
@Target(ElementType.TYPE)
@Documented
@Constraint(validatedBy=BaseValAnno.class)
//@Repeatable(LinkVals.class)(可重复注解同一字段,或者类,java1.8后支持)
public @interface BaseVal {
String message() default "格式不正确";
Class<?>[] groups() default {};
Class<? extends Payload>[] payload() default{};
}
2.对注解进行定义,继承 ConstraintValidator,接口,
3.自定义注解的使用。
/*
1、由于是对类的注解,所以存在的逻辑关系是先对属性验证,然后对类的逻辑关系验证,
2、@GroupSequence是对注解分组的排序,可以通脱他判断先后顺序
*/
@GroupSequence({first.class,second.class,third.class,fourth.class,BaseInfo.class})
@BaseVal(groups={fourth.class})
public class BaseInfo {
//private int id;
@NotEmpty(message="年度不能为空",groups={first.class})
private String niandu;
@NotEmpty(message="处罚主体不能为空",groups={first.class})
private String areacode;
相关文章推荐
- Hibernate Criteria可以只查询出表中几个字段
- Hibernate Criteria可以只查询出表中几个字段
- jQuery Validate的使用发法和自定义验证方法的实现
- jquery validate 自定义验证方法
- jquery validate.addMethod 正则表达式 (自定义验证方法)
- jquery.validate 自定义验证方法及validate相关参数
- 织梦dedecms自定义搜索可以按照附加表字段进行搜索
- 自定义验证(判断两个值同时唯一)
- jQuery Validate插件自定义验证规则的方法
- jquery validate.addMethod 正则表达式 (自定义验证方法)
- jquery.validate remote 和 自定义验证方法
- 让query_posts() 或 wp_query()同时使用多个 meta_key与 meta_value 来查询多个自定义字段与值
- JQuery扩展插件Validate 5添加自定义验证方法
- 比如对 姓名字段,可以同时查询两个姓名的记录
- hibernate查询表的几个字段遍历数据
- Easyui validatebox修改——1.当text发生变化时在校验,2.取消校验,3扩展自定义验证
- 自定义验证类(客户端和服务器端同时验证,支持Ajax验证)[开源]
- miniui数据集显示时可以加载自定义字段内容
- jquery validate 自定义验证方法介绍 日期验证
- jquery.validate remote 和 自定义验证方法