Viene visualizzato il messaggio "letterale non corrisponde alla stringa di formato".Associazione di una data Oracle a un oggetto Java utilizzando Hibernate
Per esempio, qui ci sono alcuni metodi di una classe Java:
public String getDateTime();
public void setDateTime(String date_time);
Ecco la mappatura dal file di configurazione di Hibernate per la classe:
<property name="dateTime" column="date_time">
ed ecco il DDL per quella colonna:
CREATE TABLE "SCHEMA"."TABLE_NAME"
(
"DATE_TIME" DATE,
etc.
)
Ho provato a impostare type = "date" e "timestamp" (non allo stesso tempo) come attr sulla proprietà nella configurazione di ibernazione, e quindi cambiando il tipo di Java da String a Date, ma questo mi ha dato un errore diverso. Ho letto qualcosa sull'associazione del parametro, ma non sono riuscito a farmi testa o croce.
Quando commento la proprietà dalla configurazione, tutto il resto funziona, quindi sono sicuro che questo è il mio problema. La cosa fastidiosa è che ho un'altra mappatura tabella/classe con apparentemente la stessa mappatura Oracle Date-> Java String che non mi dà questo problema.
Guh. Non penso di aver modificato il tipo del parametro del metodo setter da String a Date la prima volta. Sensazione stupida, perché ha funzionato come un orologio questa volta. –
Funziona solo se NON si include l'attributo "type" nella proprietà mapping: Se si include il tipo con un valore "data" o "data/ora" "non convertirà accuratamente i valori. Quindi il seguente è BAD: Ecco un link che spiega perché questo è vero: http://fishbowl.pastiche.org/2005/07/13/hibernate_oracle_and_dates_a_story/ed ecco un link che spiega la soluzione: http://www.enavigo.com/2007/10/20/mapping-hibernate-to-oracle-date-fields/ –