Ich bekomme die Nachricht "Literal passt nicht Formatzeichenfolge".Mapping eines Oracle-Datums auf ein Java-Objekt mit Hibernate
Zum Beispiel sind hier einige Methoden aus einer Java-Klasse:
public String getDateTime();
public void setDateTime(String date_time);
Hier wird die Abbildung von der Hibernate-Konfigurationsdatei für diese Klasse:
<property name="dateTime" column="date_time">
und hier wird die DDL für die Säule:
CREATE TABLE "SCHEMA"."TABLE_NAME"
(
"DATE_TIME" DATE,
etc.
)
ich versuchte Typen Einstellung = „Datum“ und „Zeitstempel“ (nicht zur gleichen Zeit) als Attr auf der Eigenschaft in der Hibernate-Konfiguration, und dann den Java-Typ von String in Datum ändern, aber das gab mir einen anderen Fehler. Ich habe etwas über das Binden des Parameters gelesen, konnte aber davon nichts machen.
Wenn ich diese Eigenschaft aus der Config auskommen alles andere funktioniert, so bin ich mir sicher, dass das mein Problem ist. Die ärgerliche Sache ist, dass ich eine andere Tabelle/Klassenzuordnung mit scheinbar der gleichen Oracle Date-> Java String Mapping habe, die mir dieses Problem nicht gibt.
Guh. Ich glaube nicht, dass ich den Typ des Setter-Methodenparameters beim ersten Mal von String auf Date geändert habe. Es war dumm, weil es dieses Mal wie ein Uhrwerk funktionierte. –
Dies funktioniert nur, wenn Sie das Attribut "type" in der Mapping-Eigenschaft nicht enthalten: Wenn Sie den Typ mit einem Wert von "Datum" oder "Zeitstempel "Es wird die Werte nicht genau konvertieren. Also ist das folgende BAD: Hier ist ein Link, der erklärt, warum das wahr ist: http://fishbowl.pastiche.org/2005/07/13/hibernate_oracle_and_dates_a_story/und hier ist ein Link, der die Lösung erklärt: http://www.enavigo.com/2007/10/20/mapping-hibernate-to-oracle-date-fields/ –