当前位置: 首页 > 知识库问答 >
问题:

Spring Boot-Hibernate-从SQL查询导入日期

谈萧迟
2023-03-14

我目前正在使用Spring数据(和引导)构建REST API。我有一个来自H2数据库的sql Dumb,该数据库由hibernate访问。

我的申请。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'))

我nformation.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') ^ , ^

我的猜测是hibernate采用了一些用德语配置月份的语言环境-有人知道如何更改吗?另一种方法是告诉hibernate--

编辑:将导入查询中的Monthname更改为德语时--

共有1个答案

鄢修德
2023-03-14

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

Locale.setDefault(new Locale("en", "US"));
 类似资料:
  • 问题内容: 我需要从Hibernate查询中获取字符串,并稍后进行处理(因此无法使用来解决)。 我已经看过如何从HibernateCriteriaAPI(并非用于记录日志)中获取SQL,但是有了这种解决方法,我得到了SQL查询字符串,但是没有显示它显示’?’的参数值,有没有办法获得带有参数值的完整SQL字符串? 我的意思是,有了这种解决方案,我可以得到,但我需要得到… 有想法吗? 问题答案: 有一

  • 我在SO和其他地方发现了许多类似的问题,比如这个,这个和这个,举几个例子。我试图跟踪它们,但无法在控制台上打印查询。一个问题是项目中有超过15个文件。我已经用相关的属性更新了所有这些,但到目前为止没有用。我是Hibernate的新手,对Liferay框架一无所知。如何在OpenUnderwriter中启用SQL调试? 编辑:通过从bitbucket存储库克隆openunderwriter,并按照安

  • 诸葛io提供了SQL查询的功能,以方便企业中的数据分析师和有需求的高级用户使用SQL表达式查询和分析用户行为数据。 在SQL查询平台您可以撰写SQL语句,并执行查看查询结果以及对查询结果进行可视化分析。 如果您需要将查询结果进行的处理,或和其他数据(如业务数据库中的数据)进行整合,以便产出进一步的分析结果或报告;诸葛io的SQL查询提供了查询结果的下载功能,在查询结果列表的切换图表功能栏,点击“下

  • 问题内容: 我正在尝试创建一个查询,该查询仅从所选日期获得年份。即返回,但我只想。我怎样才能只得到一年?我知道可以使用该功能,但不确定如何使用。 问题答案: 编辑:由于后标记’oracle’,前两个查询变得无关紧要,剩下第三个查询为oracle。 对于MySQL: 编辑:无论如何,如果您的日期是一个字符串,让我们将其转换为正确的日期格式。并从中选择年份。 由于您正在尝试使用Toad,因此可以检查以

  • 问题内容: 我正在管理事件数据库。每个事件都有开始和结束时间戳记()。 目前,我可以通过一个SQL查询执行以下操作: 建立日历,并记下发生事件的日期 列出给定日期(YYYY / MM / DD,YYYY / MM)中发生的事件 问题是当一个事件跨越几天时,我无法在它的开始和结束时间戳之间的日期列出它。 例如: 活动开始于2011/05/25和结束于2011/05/27,但我无法在页面2011/05

  • 我对Oracle SQL中的以下查询有疑问: 当我运行它时,结果如下所示:2015年11月10日。根据我在Oracle文档中读到的内容,YYYY应该转换为4位数的年份,但它转换为2位数的年份。为什么会这样?