2016-03-23 13 views
1

ich eine Klasse Wich haben enthält:java.sql.Date nicht in Datentabellen eingefügt

@Column(name = "end_date") 
private Date endDate; 

und es ist Setter

public void setEndDate() { 
    endDate = new java.sql.Date(Calendar.getInstance().getTime().getTime()); 
    System.out.println(endDate); 
} 

Wenn ich den Setter bin Aufruf, und erneut prüfen, wenn der Wert ist richtig, alles ist in Ordnung (sogar getEndDate().getClass()). Wenn ich jedoch mein Objekt in PostgreSQL (myObject.persist()) speichere, gibt es in der Spalte END_TIME keinen Wert. Andere Werte sind korrekt.

Weiß jemand, was ist das Problem?

Auch muss ich, dass Hibernate erwähnen wird SQL-Tabellen

Setter und Getter zu erstellen:

public void setEndDate(Date endDate) { 
    setEndDate(); 
} 
public Date getEndDate() { 
    return endDate; 
} 
+1

arbeitet Bekomme ich richtig, dass die Spalte END_TIME in der Tabelle und end_date im @Column -Tag heißt? Dies könnte erklären ... :-) –

+0

Mit einem privaten Feld wird Hibernate Java-Standard-Setter und Getter verwenden. Können Sie die anderen Setter (die ein Argument aufnehmen) und die Getter, die Sie für dieses Feld in dieser Bean haben, posten? – AndyN

+0

OleV.V, ich war es, der end_time uppercased geschrieben hat. @AndyN, ich habe keinen Setter, der einen Parameter nimmt, ich denke, da ist das Problem – UnguruBulan

Antwort

1
  1. import java.util.Date statt Import java.sql.date
  2. aktuelles Datum zuweisen pro Code folgende
  3. Standarddatum assign während Ziel dieser Einheit zu schaffen, wenn der Benutzer auf der Laufzeit dann Setter ändern muß mit
  4. dies versuchen, es

    @Column(name = "END_TIME") 
    private Date endDate = new Date(); 
    
    public void setEndDate(Date endDate) { 
        this.endDate = endDate; 
    } 
    
    public Date getEndDate() { 
        return endDate; 
    } 
    
+0

Es funktioniert, danke! Immer noch nicht verstehen, warum mein Ansatz nicht funktioniert – UnguruBulan

+0

Ihre Begrüßung :) –

0

Ich benutze java.util.Date für diesen Fall, und ändern Sie die Abbildung Ihrer @Column als

@Column(name = "end_time") 
private Date endDate = new Date(); 

public void setEndDate(Date endDate) { 
    this.endDate = endDate; 
} 

public Date getEndDate() { 
    return endDate; 
} 
+0

das Gleiche. kein Wert in der Datenbank – UnguruBulan

+0

Ich sehe Sie die Spalte mit end_date markieren, aber den Wert in END_TIME überprüfen, ist das etwas falsch? \ – VinhNT

+0

Ich sagte Ihnen oben, dass ich den Spaltennamen in der oberen Spalte. In der Datenbank ist es "end_time" – UnguruBulan

Verwandte Themen