Hibernate Validator 第7篇:额外约束

本文主要介绍上一篇遗留的一些约束注解。

一、内建约束

上一篇介绍了内建约束的大部分,这里还有部分内建约束没有介绍完。

  • @Max(value=):检查是否被注解的值是小于等于指定的最大值的。
    • 支持的数据类型:BigDecimal, BigInteger, byte, short, int, long和对应的包装类。额外支持HV:任何CharSequence的自类型,还有任何Number和javax.money.MonetaryAmount类型的子类。
    • Hibernate 元数据影响:无。
  • @Min(value=):功能作用和上面刚好相反
  • @NotBlank():检查被注解的字符串是非null的,并且其trimmed之后的串的长度大于零。它和@NotEmpty不同的地方在于,它只能应用在字符串上,而后者对空格字符串,会忽视,不会认为是空。
    • 支持的类型:CharSequence。
    • Hibernate元数据影响:无。
  • @NotEmpty:检查被注解的字符串是否是非null或是empty集合。
    • 支持的元素:CharSequence,Collection,Map和数组。
    • Hibernate元数据影响:无。
  • @NotNull:检查被注解的值是否是非null的。
    • 支持的类型:任何类型。
    • 元数据影响:列是非空的。
  • @Negative:检查元素是否是严格为负的。零值被认为是无效的。
    • 支持的类型:BigDecimal, BigInteger, byte, short, int, long和对应的包装类。额外支持HV:任何CharSequence的自类型,还有任何Number和javax.money.MonetaryAmount类型的子类。
    • Hibernate元数据影响:无。
  • @NegativeOrZero:检查元素是否为负,或等于零。
    • 支持的类型:BigDecimal, BigInteger, byte, short, int, long和对应的包装类。额外支持HV:任何CharSequence的自类型,还有任何Number和javax.money.MonetaryAmount类型的子类。
    • Hibernate元数据影响:无。
  • @Null:检查被注解的值是null。
    • 支持的类型:任何类型。
    • Hibernate元数据影响:无。
  • @Past:检查被注解的date是否在过去。
    • 支持的类型:
      • java.util.Date,
      • java.util.Calendar,
      • java.time.Instant,
      • java.time.LocalDate,
      • java.time.LocalDateTime,
      • java.time.LocalTime,
      • java.time.MonthDay,
      • java.time.OffsetDateTime,
      • java.time.OffsetTime,
      • java.time.Year,
      • java.time.YearMonth,
      • java.time.ZonedDateTime,
      • java.time.chrono.HijrahDate,
      • java.time.chrono.JapaneseDate,
      • java.time.chrono.MinguoDate,
      • java.time.chrono.ThaiBuddhistDate;
    • 另外如果Joda.Time date/time API在类路径中的话,也支持HV。
      还有任何实现了ReadablePartial和ReadableInstant的子类。
    • Hibernate元数据影响:无。
  • @PastOrPresent:检查被注解的date是否在过去或现在。
    • 支持的类型:
      • java.util.Date,
      • java.util.Calendar,
      • java.time.Instant,
      • java.time.LocalDate,
      • java.time.LocalDateTime,
      • java.time.LocalTime,
      • java.time.MonthDay,
      • java.time.OffsetDateTime,
      • java.time.OffsetTime,
      • java.time.Year,
      • java.time.YearMonth,
      • java.time.ZonedDateTime,
      • java.time.chrono.HijrahDate,
      • java.time.chrono.JapaneseDate,
      • java.time.chrono.MinguoDate,
      • java.time.chrono.ThaiBuddhistDate;
    • 另外如果Joda.Time date/time API在类路径中的话,也支持HV。
    • 还有任何实现了ReadablePartial和ReadableInstant的子类。
    • Hibernate元数据影响:无。
  • @Pattern(regex=, flags=):检查被注解的string是否匹配正则表达式regex,同时考虑是否匹配flags。
    • 支持的类型:CharSequence。
    • Hibernate元数据影响:无。
  • @Positive:检查被注解的值是否是严格为正的,零无效。
    • 支持的类型:BigDecimal, BigInteger, byte, short, int, long和对应的包装类。额外支持HV:任何CharSequence的自类型,还有任何Number和javax.money.MonetaryAmount类型的子类。
    • Hibernate元数据影响:无。
  • @PositiveOrZero():检查是否是正的,或是零。
    • 支持的类型:BigDecimal, BigInteger, byte, short, int, long和对应的包装类。额外支持HV:任何CharSequence的自类型,还有任何Number和javax.money.MonetaryAmount类型的子类。
    • Hibernate元数据影响:无。
  • @Size(min=, max=):检查被注解的值是否在min和max(排除的)之间-[min, max)。
    • 支持的类型:CharSequence,Collection,Map和数据。
    • Hibernate元数据影响:列长度将会被设置进max。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值