Java+Hibernate校验java请求vo实体

1.前景

Vo实体添加标签@NotBlank或@Pattern灵活配置,灵活校验。通用处理代码,减少大量校验代码的书写,提高开发效率。

2.代码使用

学生实体:

package jdk.ValidateVo;

import jdk.ValidateVo.customAnnotation.Money;
import org.hibernate.validator.constraints.NotBlank;

import javax.validation.Valid;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern;
import java.util.List;

/**
 * Created by JadenOliver on 2018/5/21.
 */
public class StudentInfo {

    @NotBlank(message="用户名不能为空")
    private String userName;

    @NotBlank(message="年龄不能为空")
    @Pattern(regexp="^[0-9]{1,2}$",message="年龄是整数")
    private String age;

    /**
     * 如果是空,则不校验,如果不为空,则校验
     */
    @Pattern(regexp="^[0-9]{4}-[0-9]{2}-[0-9]{2}$",message="出生日期格式不正确")
    private String birthday;

    @NotBlank(message="学校不能为空")
    private String school;

    @NotNull
    @Money  //自定义注解,自定义校验方式。
    //@Pattern(regexp = "^\\d+\\.\\d{1,2}?$", message = "金额格式不正确")  //说明:@Pattern只能用在String上,否则报异常:No validator could be found for type: java.lang.Double
    private Double money;

    @Valid   //亲测:如果不在关联属性上设置@Valid标签,便不会校验关联实体的属性值。
    private List parents;  //关联实体校验

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public String getAge() {
        return age;
    }

    public void setAge(String age) {
        this.age = age;
    }

    public String getBirthday() {
        return birthday;
    }

    public void setBirthday(String birthday) {
        this.birthday = birthday;
    }

    public String getSchool() {
        return school;
    }

    public void setSchool(String school) {
        this.school = school;
    }

    public Double getMoney() {
        return money;
    }

    public void setMoney(Double money) {
        this.money = money;
    }

    public List getParents() {
        return parents;
    }

    public void setParents(List parents) {
        this.parents = parents;
    }
}

具体代码参见:

代码结构:Java+Hibernate利用标签校验Vo:
1>简单校验;@NotBlank、@NotNull、@Pattern使用
2>自定义注解和校验规则;@Money使用
3>关联实体属性校验。@Valid使用

3.注意点:

1.Integer、Double数据类型,即非String字符串类型,只能添加@NotNull,否则会报javax.validator not found for Integer异常。
2.关联实体校验,需要在关联实体属性上添加@Valid标签。关联实体如果是一个List,也可以正常运行。

4.参考资料

java使用validator进行校验

你可能感兴趣的:(Java+Hibernate校验java请求vo实体)