Spring 启动 - 休眠 - 从 SQL 查询导入日期

Spring Boot - Hibernate - Import Date from SQL Query

我目前正在使用 Spring 数据(和引导)构建 REST API。 我有一个来自 h2 数据库的 sql Dumb,休眠可以访问它。

我的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

sql 查询如下所示:

Insert into TABLE (name, number, date) values ("James", 123, to_date('28-JUL-17','DD-MON-RR'))

Information.java 看起来像:

@Entity  
@Table(name="TABLE") 
@Data 
public class Information {

    @Column(name="name")
    String name;

    @Column(name="number")
    Integer number;

    @Column(name="date")
    String date;

当我尝试 运行 API 时,出现以下异常: enter image description here

Caused by: org.h2.jdbc.JdbcSQLException: Function "TO_DATE": Invalid date format: " Tried to parse one of '[Jul, Feb, Apr, Jun, Aug, Mai, Nov, Jan, Dez, Okt, Mär, Sep]' but failed (may be an internal error?). Details: TO_DATE('16-MAR-17', 'DD-MON-RR') ^ , ^ <-- Parsing failed at this point"; SQL statement

我猜想 hibernate 需要一些语言环境,其中月份是用德语配置的 - 有人知道如何更改吗? 另一种方法是告诉 hibernate --> 忽略 sql 函数 to_date() 并将字段作为字符串读取。我尝试在@column 注释上写@org.hibernate.annotations.Type(type =“text“) - 但它不起作用:(

编辑: 将导入查询中的月份名称更改为德语时 --> 如 OCT --> OKT ; DEC --> DEZ .. 它有效。所以看起来 Hibernate 正在使用我的本地语言设置进行映射。有没有办法将其更改为英语?

如果其他人遇到这个问题 - 我已经解决了。 Hibernate 读取 Locate 设置。因此,在主应用程序中使用简单的代码行即可完成:

Locale.setDefault(new Locale("en", "US"));