服务结果中的对象始终无效

时间:2016-05-15 13:24:31

标签: java hibernate validation spring-boot

人是实体,我认为这是有效的,但为什么验证人说这不是故事?验证者说' nama '为空。

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;
    }
}

这是获取数据的peopleService方法

@Override
public People get(String id)
{
    return peopleRepository.getOne(id);
}

1 个答案:

答案 0 :(得分:0)

在第二种情况下,使用新的People()创建的orang与第一种情况不同。但是,问题似乎在验证逻辑中。你有任何自定义验证器来扩展Validator吗?如果是这样,请使用People对象检查验证器逻辑,或发布People对象和验证器逻辑。