Spring启动验证注释不适用于Kotlin

时间:2018-01-25 12:17:40

标签: spring spring-boot kotlin

我为Kotlin提供了一个简单的数据类

data class Person(val name: String, @get: Min(18) val age: Int)

我实际上是从CSV文件构建这个类,然后使用apache CSV解析器读取CSV。即使我有一些age字段小于18的数据,测试仍然没有错误。

看起来这个注释不适用于Kotlin?

2 个答案:

答案 0 :(得分:1)

您目前正在使用Min注释对构造函数参数进行注释 - 我相信您应该使用use-site target来注释该字段:

data class Person(val name: String, @field:Min(18) val age: Int)

答案 1 :(得分:1)

尝试将注释@Validated添加到类中(尽管可能只适用于spring bean)。这些注释不会阻止设置的值,只是允许从现有实例获取带有验证错误列表的BindingResult。如果需要阻止设置值,可以使用自定义委托。

 val age: Int by MyDelegates.min(18)