データベースの情報を更新する必要があります。
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;
}
HV000030:タイプのバリデーターが見つかりませんでした:Java.lang.Integer
これは、Hibernate ValidatorのフレーバーでJSR303 Bean検証を使用し、JPAエンティティに次のようなInteger
プロパティのHibernate固有の@NotEmpty
がある場合に発生します。
@NotEmpty
private Integer some;
これは完全に間違っています。整数を 文字列、コレクション、マップ、または配列 と見なすことはできません。代わりに標準の@NotNull
を使用してください。
@NotNull
private Integer some;
具体的な問題はJSFとはまったく関係がないことに注意してください。将来的には、可能な限りノイズを排除し、具体的な問題を特定する方法を学んでください。 JPAコードを個別に実行します。ここでJSFは単なるHTTP/MVCメッセンジャーであり、PrimeFacesは単なるHTML/CSS/jQuery/UIコードジェネレーターです。
上記の回答に追加したいと思います。この例外は、たとえば次のようなものがある場合にもスローされます。
@Size(min = 1, max = 20)
@Column(name = "ID")
private int id;
以下のような場合にもこの問題が発生する可能性があります。
@Size(max = 45, message = "Field 'SomeEntityClass.yourEnumType' cannot exceed 45 characters") @Column(length=45)
@Enumerated(EnumType.STRING)
private SomeEnumType yourEnumType;
これは、検証時に、 'yourEnumType'(整数型)の序数値が、値をデータベースに保存する前にHibernateが解決する文字列マッピングよりも先に処理されるためです。
また、整数に対して無効な制約が存在する場合、そのエラーがスローされます。整数に注釈を付けるような: