Boa tarde, estou fazendo um projeto para poder praticar Java e Spring boot e, acredito que não seria possível usar os annotations @CPF e @CNPJ simultaneamente na mesma variavel (a minha variável recebe os dois valores CNPJ e CPJ), e queria validar os valores que serão recebidos antes de incluir no banco de dados. Uma forma que encontrei de fazer a validação foi utilizar a biblioteca Caelum Stella e, fazer a validação dentro do método de salvar, gostara de compartilhar e saber se indicariam uma forma melhor de fazer essa validação.
public Parceiro(DadosCadastroParceiro dados) throws ErroDedadosException {
if (dados.tipoParceiro().contains("Fisica")){
CPFValidator cpfValidator = new CPFValidator();
List<ValidationMessage> erros = cpfValidator.invalidMessagesFor(dados.cpf_cnpj());
if (erros.size() > 0){
throw new ErroDedadosException("CPF Inválido, por favor informar CPF Válido.");
}else {
this.cpf_cnpj = dados.cpf_cnpj();
}
}
else if (dados.tipoParceiro().contains("Juridica")){
CNPJValidator cnpjValidator = new CNPJValidator();
List<ValidationMessage> errosCNPJ = cnpjValidator.invalidMessagesFor(dados.cpf_cnpj());
if(errosCNPJ.size() > 0){
throw new ErroDedadosException("CNPJ Inválido, por favor informar CNPJ Válido.");
}else {
this.cpf_cnpj = dados.cpf_cnpj();
}
}
this.email = dados.email();
this.nome = dados.nome();
this.telefone = dados.telefone();
this.tipoParceiro = dados.tipoParceiro();
}