PDA

View Full Version : [JAVA] campo Date in Oracle


anonimizzato
08-07-2010, 17:15
Ciao a tutti,

stò sviluppando un'applicazione web con Java e Oracle ed ho un problema.

In sostanza quando cerco di fare una query insert su una tabella con un campo Date riesco ad impostare solo il giorno/mese/anno ma non l'orario.

es:
oggetto.setCampoData(new Date());

new Date vedo che mi restituisce un oggetto Date completo, quindi con anche ore, minuti e secondi ma quando cerco di scrivere il valore a DB la parte "TIME" viene segata.

CampoData (con relativi getter e setter) è mappato ovviamente come Date nel Model.

Nota: Uso iBatis come DataMapper

Qualche idea o suggerimento?

Purtroppo conosco poco sia Java che Oracle.

Grazie in anticipo.

shinya
08-07-2010, 17:17
Dal lato Oracle la colonna deve essere di tipo TIMESTAMP. Magari invece è DATE...

anonimizzato
08-07-2010, 19:19
Dal lato Oracle la colonna deve essere di tipo TIMESTAMP. Magari invece è DATE...

Uhm, la colonna è DATE ma riesce ad immagazzinare correttamente un DATETIME se ad esempio uso SYSDATE.

E' dall'applicazione che non lo inserisce correttamente ... credo.

anonimizzato
09-07-2010, 19:32
Ok ho risolto, nel caso possa essere utile a qualcuno ho fatto così:

Nella query di INSERT ho mappato la colonna come TIMESTAMP invece che DATE, ovvero:

DATA = #data:TIMESTAMP#

mentre per la visualizzazione, dato che si presentava lo stesso problema in lettura, ho definito una resultMap dove per la colonna DATA specifico un attributo jdbcType="TIMESTAMP" ed un attributo javaType="DATE"

Bye.