java Javax验证不适用于值为数组或列表的Hashmap
我正在用spring boot开发Kotlin
我有一个实体Hours
data class Hours(
@get: Max(value=3) val value : Long)
在我的构造函数中,我有以下内容
fun postHours(@RequestBody @Valid hours: @Valid LinkedHashMap<String, Array<Hours>>): String {
return service.addHours(hours)
}
但验证根本不起作用
我可以用value > 3
发送请求,尽管我已将最大值设置为3。而且没有错误
有人能告诉我这里怎么了吗
# 1 楼答案
我有一个类似的案例正在Java中工作(您可以重写为Kotlin)。请尝试:
在用@configuration注释的配置类中定义一个新bean:
为控制器添加以下注释:
然后,您可以通过以下方式验证您的类:
-修改以提供完整示例-
你可以使用这个完整的例子。我正在使用:spring boot starter web 2.2.6和lombok
下面是要验证的类:
控制器:
配置类:
控制器建议(以json形式发送异常):
测试等级:
单元测试表明linkedhashmap内部的验证是有效的