Javax空整数字段验证

Ale*_*lex 3 java validation hibernate

我的应用程序对薪水字段使用javax验证,该字段为int。我应该使用什么注释来避免出现这样的错误消息

无法将类型“ java.lang.String”的属性值转换为属性“ salary”的必需类型“ int”;嵌套的异常是java.lang.NumberFormatException:对于输入字符串:“”

我当前的实现如下所示:

@Column(name = "salary", nullable = false)
@NotNull(message= "salary may not be empty")
@Range(min = 1)
private int salary;
Run Code Online (Sandbox Code Playgroud)

我知道我不能将NotBlank用于int字段,这会导致错误。如果“字符串”为空,如何显示消息“工资可能不为空”而不是上面的异常?谢谢

Nik*_*las 5

我建议您使用Integer可以保留null值本身的对象类型。

@Column(name = "salary", nullable = false)
@NotNull(message= "salary may not be empty")
@Range(min = 1)
private Integer salary;
Run Code Online (Sandbox Code Playgroud)

上面的方法确保总salary有一个值等于或大于1的输入。