Hibernate Validator - CPF não formatado
Estou mexendo um pouco com o Hibernate e mesmo sendo uma aplicação "de brinquedo" acabei empacando nos validators.
Baixei o Hibernate Validator 6.0.2Final e estou tentando utilizar o @CPF (que foi incluído no Hibernate Validator) num atributo String do modelo.
Eu importo um arquivo XML e na hora de salvar o validator diz que o CPF é inválido (apenas formato). Procurando na internet vi uns bug reports sobre o @CPF aceitar somente o número formatado, com os separadores, e não aceitar uma string de dígitos apenas. Mas isso, pelo que os comentários indicavam, acontecia na versão 5 e os bug reports foram dados como fechados.
Aí resolvi alterar o formato do CPF que eu estava importando p/ incluir os separadores. Funciona tudo certinho.
Ao invés de me dar por feliz resolvi baixar o fonte do Hibernate Validator e fuçar na classe org.hibernate.validator.constraints.br.CPF. E está lá o pattern com 11 dígitos, sem formatação:
@Pattern.List({
@Pattern(regexp = "([0-9]{3}[.]?[0-9]{3}[.]?[0-9]{3}-[0-9]{2})|([0-9]{11})"),
// XXX.XXX.XXX-XX where X is always the same digit are not a valid CPFs, but all of them passes the mod check. Needs to be singled out each one via regexp
@Pattern(regexp = "^(?:(?!000\\.?000\\.?000-?00).)*$"),
@Pattern(regexp = "^(?:(?!111\\.?111\\.?111-?11).)*$"),
@Pattern(regexp = "^(?:(?!222\\.?222\\.?222-?22).)*$"),
@Pattern(regexp = "^(?:(?!333\\.?333\\.?333-?33).)*$"),
@Pattern(regexp = "^(?:(?!444\\.?444\\.?444-?44).)*$"),
@Pattern(regexp = "^(?:(?!555\\.?555\\.?555-?55).)*$"),
@Pattern(regexp = "^(?:(?!666\\.?666\\.?666-?66).)*$"),
@Pattern(regexp = "^(?:(?!777\\.?777\\.?777-?77).)*$"),
@Pattern(regexp = "^(?:(?!888\\.?888\\.?888-?88).)*$"),
@Pattern(regexp = "^(?:(?!999\\.?999\\.?999-?99).)*$")
})
Já verifiquei no depurador se não tem um espaço em branco perdido na string quando o handler monta o objeto a partir do XML (não tem. Está certo) e continuo sem saber porque esse negócio não aceita CPF não formatado. Alguém já passou por isso e conseguiu resolver?
Discussão (0)
Carregando comentários...