java ee - validations - javax.servlet.ServletException: HV000030: No se pudo encontrar un validador para el tipo: java.lang.Integer
javax validation constraints size (3)
HV000030: No se pudo encontrar un validador para el tipo: java.lang.Integer
Eso sucederá cuando use la validación de beans JSR303 en el sabor de Hibernate Validator y tenga en su entidad JPA el elemento específico de Hibernate @NotEmpty
en una propiedad Integer
como esta:
@NotEmpty
private Integer some;
Esto es completamente incorrecto Un entero no puede considerarse una cadena, colección, mapa o matriz . Use el estándar @NotNull
en @NotNull
lugar.
@NotNull
private Integer some;
Tenga en cuenta que el problema concreto no está relacionado con JSF. En el futuro, sepa cómo excluir el ruido posible y eliminar el problema concreto, por ejemplo, ejecutando el código JPA de forma individual. JSF es simplemente el mensajero HTTP / MVC aquí y PrimeFaces es simplemente el generador de código HTML / CSS / jQuery / UI.
Tengo que actualizar la información en mi base de datos.
FacadePatient.java
clase FacadePatient.java
:
public Patient update(Patient p) {
Patient pat = em.find(Patient.class, p.getPatientId());
p.setPatientPhone(pat.getPatientPhone());
p.setPatientDateNaiss(pat.getPatientDateNaiss());
p.setPatientEmail(pat.getPatientEmail());
p.setPatientJob(pat.getPatientJob());
p.setPatientSmoking(pat.getPatientSmoking());
p.setPatientSize(pat.getPatientSize());
em.merge(pat);
return p;
}
Me gustaría agregar a la respuesta anterior. Esta excepción también se lanzará cuando tengas algo por ejemplo como este:
@Size(min = 1, max = 20)
@Column(name = "ID")
private int id;
Puede obtener este problema también en instancias como a continuación;
@Size(max = 45, message = "Field ''SomeEntityClass.yourEnumType'' cannot exceed 45 characters") @Column(length=45)
@Enumerated(EnumType.STRING)
private SomeEnumType yourEnumType;
Esto se debe a que en el momento de la validación, el valor ordinal de ''yourEnumType'' (que es de tipo entero) se procesa antes de la asignación de cadenas que Hibernate resuelve antes de almacenar el valor en la base de datos.