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