kotlin y @Valid Spring anotación

Tengo una entidad:

class SomeInfo( @NotNull @Pattern(regexp = Constraints.EMAIL_REGEX) var value: String) { var id: Long? = null } 

Y el método del controller:

 @RequestMapping(value = "/some-info", method = RequestMethod.POST) public Id create(@Valid @RequestBody SomeInfo someInfo) { ... } 

@Valid anotación @Valid no funciona.

Parece que Spring necesita un constructor sin parameters pnetworkingeterminado y el código de fantasía anterior se convierte en algo feo (pero funcional) como este:

 class SomeInfo() { constructor(value: String) { this.value = value } @NotNull @Pattern(regexp = Constraints.EMAIL_REGEX) lateinit var value: String var id: Long? = null } 

¿Alguna buena práctica para que sea less prolijo?

Gracias.

Parece que Spring necesita estas annotations para ser aplicadas a un campo. Pero Kotlin aplicará estas annotations al parámetro constructor. Usar field: especificador al aplicar una anotación para que se aplique a un campo. El siguiente código debería funcionar bien para ti.

 class SomeInfo( @field:NotNull @field:Pattern(regexp = Constraints.EMAIL_REGEX) var value: String ) { var id: Long? = null } 

Como alternativa a la respuesta de Michal, anotar el captador también funciona.

 class SomeInfo( @get:NotNull @get:Pattern(regexp = Constraints.EMAIL_REGEX) var value: String ) { var id: Long? = null } 

La parte molesta es que no usar @get: o @field: anotará el parámetro del constructor. Este sigue siendo un código de kotlin válido (para que no obtenga un error). Es inútil en estos casos de uso.

  • Seguridad de spring. Página de inicio de session multilenguaje basada en url
  • No se puede publicar contenido web dynamic con Spring Boot y Kotlin
  • cómo cargar config en spring-webflux sin spring-boot?
  • Validación de Java Bean en Spring MVC Controller PathVariables
  • ¿No se necesita NotNull en Kotlin?
  • Probar los methods @Async de devolución de vacío de Testing
  • Tenga la security de que multiparte es nulo en el controller de descanso
  • Integración de HTML y CSS con Kotlin y Spring MVC
  • Exception Handler no funciona con `spring-boot-starter-data-rest`
  • Clase de datos de Kotlin a JSON con Spring / Jackson
  • Anular la anotación @JsonIgnore para algunos controlleres. Jackson. Primavera