簡體   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