2011-01-30 9 views
7

Sto usando javax.persistence per la mia entità object.Mysql per il database Il mio scopo entità ha un campo entryDateJPA/hibernate timestamp non farsi salvato nel database di entità/oggetto

@Column(name = "ENTRYDATE") 
private Date entryDate=new Date(); 

e quando salvo il oggetto utilizzando il metodo saveOrupdate viene salvata solo la data. Io anche voglio salvare il timestamp insieme alla data. Non imposto esplicitamente la data poiché ho già dichiarato insieme alla dichiarazione di campo sopra riportata. Come posso anche risparmiare tempo insieme alla data.

Grazie.

risposta

13

Usa

@Temporal(TemporalType.TIMESTAMP) 

sul tuo attributo.

+4

Esattamente. Per chiarire ulteriormente, se si utilizza java.util.Date o java.util.Calendar, è necessario specificare il tipo temporale (TemporalType.Date per solo giorno, mese e anno, TemporalType.TIME per solo il tempo (ore, minuti , secondi) o TemporalType.TIMESTAMP per ora e data). Se si utilizza java.sql.Date, java.sql.Time o java.sql.Timestamp, l'annotazione @ Temporal non è necessaria. – esaj

+2

Sto usando java.util.Date. Ho provato anche l'annotazione temporale. Ma il timestamp è ancora salvato come 00:00:00 00. Mi chiedo cosa sto sbagliando? Eventuali suggerimenti? –

+0

@Daniel Sto salvando due istanze di Calendar. Ho impostato la prima istanza su variable1 e ho rotolato la stessa data per una settimana e l'ho salvata su variable2. Quando salvi l'oggetto nel database, entrambi gli attributi hanno lo stesso valore che era il valore della prima istanza di Calendar. Non so quale sia il problema come quando li stampo prima di persistere l'oggetto, i loro valori sono quello che dovrebbero essere. –

0
@Column(name = "ENTRYDATE") 
@Temporal(TemporalType.TIMESTAMP) 
private Date entryDate=new Date(); 

cercano di usare questo se si desidera salvare timestamp altrimenti si può utilizzare TemporalType.Date (per salvare unica data) e TemporalType.Time (per salvare solo il tempo)

Problemi correlati