人はエンティティですが、これは有効ですが、なぜバリデータがこれをワリドイドとは言いませんか?検証ツールで 'nama'がnullです。サービス結果のオブジェクトは常に有効ではありません
People orang = peopleService.get(id);
orang.setNama("Nama Baru");
Set<ConstraintViolation<People>> violations = validator.validate(orang);
このようにする必要があります。
People tmp = peopleService.get(id);
People orang = new People();
orang.setId(id);
orang.setNama("Nama Baru");
orang.setJenkel(tmp.getJenkel());
orang.setAlamat(tmp.getAlamat());
Set<ConstraintViolation<People>> violations = validator.validate(orang);
何が違うのですか?サービス結果に何が問題なのですか?
EDITED: これは私の人々エンティティ
@Entity
public class People implements Serializable {
@Id
@GeneratedValue(generator = "uuid")
@GenericGenerator(name = "uuid", strategy = "uuid2")
private String id;
@NotNull(message = "Jangan biarkan null")
@Size(min = 3, message = "Panjang nama minimal 3 karakter")
private String nama;
@NotNull(message = "Jangan biarkan null")
private String jenkel;
private String alamat;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getNama() {
return nama;
}
public void setNama(String nama) {
this.nama = nama;
}
public String getJenkel() {
return jenkel;
}
public void setJenkel(String jenkel) {
this.jenkel = jenkel;
}
public String getAlamat() {
return alamat;
}
public void setAlamat(String alamat) {
this.alamat = alamat;
}
}
であり、これは第2のケースでデータ
@Override
public People get(String id)
{
return peopleRepository.getOne(id);
}
あなたに「People」エンティティを表示できますか?私は最初の例は動作しているのに対し、2番目の例は動作しないと仮定します。 – Alex
私の推測では、サービスから戻ってきたPeopleオブジェクトは、2番目のコード例で作成したPeopleオブジェクトとは異なり、サービスのPeopleオブジェクトは不変であるため、サービス外の名前を設定することはできません。 – hooknc
実行時に両方の 'orang'変数が内部でどのように見えるかをデバッガで見てください。 – Alex