mike-neckのブログ

Java or Groovy or Swift or Golang

KotlinでJSR303(Bean Validation)を使うときの注意

少しハマったのでメモ。

KotlinでBean Validationを使った時に、validationされないので、Stackoverflowなどを読んでいたら、アノテーションの書き方を工夫する旨あった。

まずはvalidationされないパターン

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

この場合、アノテーションコンストラクターに付与されたとみなされてしまうのでvalidationされないとのこと。

validationされるパターン

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

get:で始めると、getterの方にアノテーションが付与されるので、Bean validationに通すことができる。