Spring Boot验证注释在Kotlin中无效

5
我有一个简单的数据类用于Kotlin
data class Person(val name: String, @get: Min(18) val age: Int)

我实际上是从CSV文件中构建了这个类,并使用Apache CSV解析器读取CSV。即使我的一些数据中age字段少于18岁,测试仍然通过没有错误。

看起来这个注解在Kotlin中不起作用?


你的Spring Boot是否启用了验证API? - holi-java
2个回答

3

您当前正在使用Min注释来注释构造函数参数——我认为您应该改为在字段上使用使用位置目标进行注释,就像这样:

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

即使我更改了字段,它仍然无法正常工作,从未生效。 - ttt
如果您正在使用Java类,它是否有效?也许这是验证配置整体问题,而不是磁盘特定注释的问题。 - zsmb13
我需要进行额外的配置才能使验证工作吗? - ttt
这个问题只出现在数据类中,对于普通类是没有问题的。 - Render

1
尝试向类中添加注解@Validated(可能只适用于Spring Beans)。这些注解不会阻止值被设置,它们只是允许从现有实例获取带有验证错误列表的BindingResult。如果需要防止设置值,可以使用自定义代理。
 val age: Int by MyDelegates.min(18)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接