Olá, como vimos no curso o JSF tem uma integração muito boa com a BeanValidation, então se eu tenho por exemplo @NotNull private String nome e tentar salvar, vou receber uma mensagem no meu formulário informando que o referifo campo não pode ser nulo. O mesmo não deveria acontecer com os grupos de validação? estou tentando validar um cpf ou cnpj de acordo com a natureza física/ juridica, a validação até ocorre, mas não funciona como nos campos anotados com NotNullpor exemplo, é como se ele validasse após essa fase,ele vai para a página de erro 500 com a constraintviolationException, até criei um exception handler mas também não deu jeito, a maneira de tratar grupos de validação é diferente co o JSF? minha implementação abaixo:
@Entity
@Table(name="parte")
@GroupSequenceProvider(value = ParteGroupSequenceProvider.class)
public class Parte implements Serializable{
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name="parte_id")
private Long parteId;
@OneToOne
@JoinColumn(name = "usuario_id")
private Usuario usuario;
@Enumerated(EnumType.STRING)
private EstadoCivil estadoCivil;
@Enumerated(EnumType.STRING)
private TipoPessoa tipoPessoa;
@NotEmpty
private String nome;
@CPF(groups=PessoaFisica.class,message="Formato de CPF Inválido")
@CNPJ(groups=PessoaJuridica.class,message="Formato de CNPJ Inválido")
@NotEmpty
@Column(name="cpf_cnpj")
private String cpfCnpj;
//continua...
}
public class ParteGroupSequenceProvider implements DefaultGroupSequenceProvider<Parte> {
public List<Class<?>> getValidationGroups(Parte entity) {
List<Class<?>> groups = new ArrayList<>();
groups.add(Parte.class);
if (entity != null) {
if (entity.getTipoPessoa().equals(TipoPessoa.FISICA)) {
groups.add(PessoaFisica.class);
} else if (entity.getTipoPessoa().equals(TipoPessoa.JUIDICA)) {
groups.add(PessoaJuridica.class);
}
}
return groups;
}
}
public interface PessoaFisica {
}
public interface PessoaJuridica {
}