繁体   English   中英

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

[英]Spring Boot - Hibernate - Import Date from SQL Query

我目前正在使用Spring Data(和Boot)构建REST API。 我有一个来自h2database的sql Dumb,可以通过hibernate访问。

我的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时,出现以下异常: 在此处输入图像描述

由以下原因引起:org.h2.jdbc.JdbcSQLException:函数“ TO_DATE”:无效的日期格式:“试图分析'[[Jul,Feb,Apr,Jun,Aug,Mai,Nov,Jan,Dez,Okt,M├ ñr,Sep]',但失败(可能是内部错误?)。详细信息:TO_DATE('16 -MAR-17','DD-MON-RR')^,^ <-解析失败。“ SQL语句

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

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

如果有人遇到这个问题-我想通了。 Hibernate读取“定位”设置。 因此,在主应用程序中使用简单的代码行即可完成此操作:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM