Ich baue derzeit eine REST-API mit Spring Data (und Boot). Ich habe eine SQL Dumb von einer h2database, auf die durch den Ruhezustand zugegriffen wird.Spring Boot - Hibernate - Importdatum von SQL-Abfrage
Mein Application.yaml:
spring:
profiles: "dev"
datasource:
data: classpath:/data_api.sql
jpa:
hibernate:
naming:
physical-strategy: org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
ddl-auto: create-drop
Die SQL-Abfrage lools wie folgt aus:
Insert into TABLE (name, number, date) values ("James", 123, to_date('28-JUL-17','DD-MON-RR'))
Information.java wie folgt aussieht:
@Entity
@Table(name="TABLE")
@Data
public class Information {
@Column(name="name")
String name;
@Column(name="number")
Integer number;
@Column(name="date")
String date;
Wenn ich versuche, die API laufen Ich habe die folgende Ausnahme: enter image description here
Verursacht durch: org.h2.jdbc.JdbcSQLException: Funktion "TO_DATE": Ungültige Datumsformat: "Versucht man von‚[Jul Feb Apr Jun Aug Mai, November Jan, zu analysieren , Dez, Okt, März, Sep] 'aber fehlgeschlagen (kann ein interner Fehler sein?). Details: TO_DATE ('16 -MAR-17' , 'DD-MON-RR') ^,^< - Parsing an dieser Stelle nicht bestanden ", SQL-Anweisung
Meine Vermutung, dass Hibernate ist etwas dauert locale, wo die Monate in Deutsch konfiguriert sind - weiß jemand, wie man das ändert? Ein anderer Weg wäre, Hibernate zu sagen -> ignoriere die sql-Funktion to_date() und lese einfach das Feld als String.Ich habe versucht, sowas wie @org zu schreiben .hibernate.annotations.Type (type = "text") über die @column Annotation - aber es funktioniert nicht :(
EDIT: Wenn der Monatname in geändert wird die Importabfragen nach Deutsch -> wie OCT -> OKT; DEC -> DEZ .. es funktioniert. Es scheint also, dass Hibernate meine lokalen Spracheinstellungen für das Mapping verwendet. Gibt es eine Möglichkeit, dies auf Englisch zu ändern?