BigDecimal的JPA @Size注释

时间:2014-01-03 16:10:25

标签: java mysql jpa bean-validation

如何对MySQL @Size列使用DECIMAL(x,y)注释?

我正在使用BigDecimal,但当我尝试添加@Size max时,它无效。这是我的代码:

@Size(max = 7,2)
@Column(name = "weight")
private BigDecimal weight;

3 个答案:

答案 0 :(得分:21)

您可以直接使用Hibernate Validator,并使用@Digits注释您的字段,如下所示:

@Digits(integer=5, fraction=2)
@Column(name = "weight")
private BigDecimal weight;

答案 1 :(得分:11)

请参阅this answer

@Column(nullable= false, precision=7, scale=2)    // Creates the database field with this size.
@Digits(integer=9, fraction=2)                    // Validates data when used as a form
private BigDecimal myField;

答案 2 :(得分:4)

@Column(columnDefinition = "DECIMAL(7,2)")

如果您询问应如何验证,则应使用@Min和@Max注释或@DecimalMin和@DecimalMax注释。

@Size是一个用于验证属性的注释,而不是用于定义其列。 @Size通常用于确保字符串或集合具有一定的大小。