2016-05-15 6 views
0

Menschen ist Entität und ich denke, das ist gültig, aber warum Validator dies nicht walid sagen? Validator sagen 'Nama' ist Null.Objekt aus Service-Ergebnis immer nicht gültig

People orang = peopleService.get(id); 
orang.setNama("Nama Baru"); 
Set<ConstraintViolation<People>> violations = validator.validate(orang); 

Muss so sein.

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

Was ist das anders? Was stimmt nicht mit dem Service-Ergebnis?

EDITED: Das ist meine Leute Entity ist

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

Und das ist peopleService Verfahren zur Daten erhalten

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

Können Sie Ihre "People" Entität zeigen? Ich nehme an, das erste Beispiel funktioniert, während das zweite nicht? – Alex

+0

Meine Vermutung ist, dass das People-Objekt, das vom Dienst zurückkommt, anders als das People-Objekt im zweiten Codebeispiel ist und dass das People-Objekt vom Dienst unveränderlich ist und Sie daher den Namen höchstwahrscheinlich nicht außerhalb des Dienstes festlegen können . – hooknc

+1

Sehen Sie sich mit einem Debugger an, wie beide 'orang'-Variablen zur Laufzeit innen aussehen. – Alex

Antwort

0

Im zweiten Fall erstellt die Orang neue Menschen mit(), die anders ist aus dem ersten Fall. Das Problem scheint jedoch in der Validierungslogik zu liegen. Haben Sie einen benutzerdefinierten Validator, der Validator erweitert? Wenn dies der Fall ist, überprüfen Sie Ihre Validierungslogik mit den People-Objekten oder geben Sie Ihr People-Objekt und Ihre Validator-Logik ein.

+0

Yup, das Problem bei der Validierung. Und ich habe keinen benutzerdefinierten Validator verwendet. –

Verwandte Themen