Pessoal, o @NotNull do spring não valida meu campo do tipo boolean de jeito nenhum, todos os outros campos são validados normalmente e retornam 400 bad request quando retiro eles do body do POST, mas o boolean retorna 500 internal server error null.
Usei o swagger para gerar a api:
Swagger:
ProgramaRequest:
type: "object"
properties:
nomePrograma:
type: "string"
example: "Programa teste 1"
flHabilitado:
type: boolean
example: "true"
required:
- nomePrograma
- flHabilitado
E o código é gerado aparentemente certo, com o @NotNull e com o @Valid:
ProgramaRequestRepresentation :
@ApiModelProperty(example= "Programa Teste 1", required = true, value = "")
@NotNull
public String getNomePrograma() { return nomePrograma; }
@ApiModelProperty(example= "true", required = true, value = "")
@NotNull
public Boolean isFlHabilitado() { return flHabilitado; }
E o cara que usa o Programa Request, ou seja, o Controller:
default ResponseEntity<ProgramaResponseRepresentation> _salvarPrograma(@ApiParam(value = "salvarPrograma" ,required=true ) @Valid @RequestBody ProgramaRequestRepresentation body) {
return salvarPrograma(body);
}
// Override this method
default ResponeEntity<ProgramaResponseRepresentation> salvarPrograma(ProgramaRequestRepresentation body) {
//... minha logica de salvar (repository.salvarPrograma)
}
Existe algum bug ou algo do tipo com os campos boolean? achei esses dois links que me levantaram essa suspeita:
https://nieldw.medium.com/the-problem-with-doing-bean-validation-on-a-java-boolean-52988ec2e0e5
https://stackoverflow.com/questions/57381893/validation-for-required-boolean-attributes-doesnt-work