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.

  • SpringMVC RequestMapping: Añadiendo .xml a la ruta del controller para la respuesta xml
  • No se puede conectar a Remote Mongo DB mediante Springboot
  • No puedo excluir MongoAutoConfiguration en Springboot-Kotlin (MongoSocketOpenException)
  • use kotlin para springmvc No se pudo crear una instancia de la class de datos de la class bean
  • Crear un propio DataSource con properties de resorte
  • cómo cargar config en spring-webflux sin spring-boot?
  • Spring Boot ThymeLeaf y Kotlin: ¿el valor de la casilla no se pasa al controller?
  • ¿Por qué Kotlin con Spring MVC JSON devuelve un object vacío?
  • Spring Boot .mustache Extensión de file
  • Probar los methods @Async de devolución de vacío de Testing
  • Exception Handler no funciona con `spring-boot-starter-data-rest`