2011-01-30 10 views
7

Używam javax.persistence dla mojej jednostki object.Mysql na bazie Moja jednostka obiekt ma entryDate polaWZP/hibernacji znacznik czasu nie uzyskiwanie zapisane w bazie podmiotu/przedmiotu

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

i kiedy zapisać obiekt przy użyciu metody saveOrupdate tylko data zostanie zapisana. Również chcę zapisać datownik wraz z datą. Nie ustalam jawnie daty, od kiedy już ją zadeklarowałem, wraz z deklaracją pola powyżej. W jaki sposób mogę uzyskać czas również do zapisania wraz z datą.

Dziękuję.

Odpowiedz

13

Zastosowanie

@Temporal(TemporalType.TIMESTAMP) 

na atrybut.

+4

Dokładnie. Aby dodatkowo wyjaśnić, jeśli używasz java.util.Date lub java.util.Calendar, musisz określić tymczasowy typ (TemporalType.Date tylko dzień, miesiąc i rok, TemporalType.TIME tylko raz (godziny, minuty , sekundy) lub TemporalType.TIMESTAMP dla czasu i daty). Jeśli używasz java.sql.Date, java.sql.Time lub java.sql.Timestamp, adnotacja @ Temporal nie jest potrzebna. – esaj

+2

Używam java.util.Date. Próbowałem również adnotacji @Temporal. Ale nadal znacznik czasu jest zapisywany jako 00:00:00 00. Ciekawe, co robię źle? Jakieś sugestie? –

+0

@Daniel Zapisuję dwa wystąpienia kalendarza. Ustawiłem pierwszą instancję na zmienna1 i przetasowałem tę samą datę o tydzień i zapisałem do zmiennej2. Podczas zapisywania obiektu w bazie danych oba atrybuty mają tę samą wartość, która była wartością pierwszej instancji Kalendarza. Nie wiem, jaki jest problem, ponieważ kiedy je drukuję przed utrzymaniem obiektu, ich wartości są takie, jakie powinny być. –

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

spróbuj użyć tego, jeśli chcesz zapisać znacznik czasu inaczej można użyć TemporalType.Date (do zapisywania tylko data) oraz TemporalType.Time (do zapisywania tylko czas)