【发布时间】:2017-09-26 11:21:32
【问题描述】:
我的应用程序使用 javax 验证薪金字段,它是 int。我应该使用什么注释,以避免这样的错误消息
无法将“java.lang.String”类型的属性值转换为 财产“薪水”所需的类型“int”;嵌套异常是 java.lang.NumberFormatException:对于输入字符串:“”
我当前的实现如下所示:
@Column(name = "salary", nullable = false)
@NotNull(message= "salary may not be empty")
@Range(min = 1)
private int salary;
我知道我不能将 NotBlank 用于 int 字段,这会导致错误。如果“字符串”为空,如何显示消息“工资可能不为空”而不是上面的异常?谢谢
【问题讨论】:
-
将类型从原始类型 'int' 更改为 Wrapper 类 'Integer'。它会工作
-
你可以检查@NotEmpty。
-
谢谢,我知道了。还有其他解决方案吗?
-
你也可以使用 Pattern ...@Pattern(regexp = "[\\s]*[0-9]*[1-9]+",message="msg")
-
@Pattern 不能用于 Integer。
标签: java spring hibernate validation spring-data-jpa