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<ParentVo> 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<ParentVo> getParents() {
        return parents;
    }

    public void setParents(List<ParentVo> 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进行校验

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,554评论 19 139
  • IoC 容器 Bean 的作用域 自定义作用域实现 org.springframework.beans.facto...
    Hsinwong阅读 2,615评论 0 7
  • hibernate Validator 是 Bean Validation 的参考实现 。 Hibernate V...
    一路逆风i阅读 3,189评论 0 1
  • 今天在社群萌姐谈到了她的爱情观: 1.自己领域杰出 2.人格完整独立 3.价值观跟自己统一 我很认同萌姐的爱情观,...
    大_林子阅读 168评论 0 0
  • 在一处比武擂台上,年轻气盛的龙太子遇见了当时风华绝代的锦公子。两人从一开始的剑拔弩张,到现在的惺惺相惜,可谓是当时...
    钟离x然阅读 204评论 0 0

友情链接更多精彩内容