Inserimento della data di hibernate in Postgresql
-
28-10-2019 - |
Domanda
Ho la seguente mappatura per la data di nascita nel file hbm.xml
<property name="birthDate" type="date">
<column name="birth_date" length="4" />
</property>>
Il nome / tipo della colonna nel database Postgresql sono:
data_di nascita | data
Di tanto in tanto la data viene inserita in modo errato - è circa lo 0,03% dei casi, il risultato è una data strana, cioè un anno 2456
Quale può essere una ragione?Sospetto che la lunghezza della colonna 4 nel file hbm.xml forse non è sufficiente, non ne sono sicuro.
La versione di ibernazione è la 3.1
Soluzione 2
Ho sbagliato a dare la colpa del problema a Hibernate.Il problema era in SimpleDateFormat.Qualcuno prima di me ha specificato un oggetto di classe statica di questa classe.Nell'ambiente multithread ciò ha comportato una formattazione della data errata prima dell'uso da parte di Hibernate
Altri suggerimenti
Se sei nuovo nell'ibernazione, mantieni le dichiarazioni il più semplici possibile.Quindi, se vuoi aggiungere un oggetto Date
nella mappatura, usa il codice seguente.
Nel file di mappatura,
<property column="CREATED_DATE" name="createdDate" />
Nella classe java,
java.lang.util.Date createdDate
//getters & setters
Una volta che è stabile e funziona, puoi iniziare a giocare con più opzioni nella mappatura.