Je dois mettre à jour les informations dans ma base de données.
FacadePatient.Java
code de classe:
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;
}
HV000030: Aucun validateur n'a été trouvé pour le type: Java.lang.Integer
Cela se produira lorsque vous utiliserez la validation de bean JSR303 dans la version de Hibernate Validator et que vous aurez dans votre entité JPA le @NotEmpty
spécifique à Hibernate sur une propriété Integer
comme ceci:
@NotEmpty
private Integer some;
C'est complètement faux. Un entier ne peut pas être considéré comme un chaîne, collection, carte ou tableau . Utilisez plutôt le @NotNull
standard.
@NotNull
private Integer some;
Veuillez noter que le problème concret n’a absolument aucun rapport avec JSF. À l'avenir, veuillez apprendre à exclure autant que possible le bruit et résoudre le problème concret, par exemple. exécuter le code JPA individuellement. JSF est simplement le messager HTTP/MVC et PrimeFaces est simplement le générateur de code HTML/CSS/jQuery/UI.
Je voudrais ajouter à la réponse ci-dessus . Cette exception serait également levée lorsque vous avez quelque chose comme par exemple:
@Size(min = 1, max = 20)
@Column(name = "ID")
private int id;
Vous pouvez également rencontrer ce problème dans les cas suivants:
@Size(max = 45, message = "Field 'SomeEntityClass.yourEnumType' cannot exceed 45 characters") @Column(length=45)
@Enumerated(EnumType.STRING)
private SomeEnumType yourEnumType;
En effet, au moment de la validation, la valeur ordinale de 'yourEnumType' (qui est de type entier) est traitée avant le mappage de chaîne résolu par Hibernate avant de stocker la valeur dans la base de données.
De plus, si une contrainte non valide pour un entier est présente, cette erreur sera renvoyée. Comme annoter un entier avec: