[英]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.