对 hsqldb 运行休眠时无法解析的日期
Posted
技术标签:
【中文标题】对 hsqldb 运行休眠时无法解析的日期【英文标题】:Unparseable date when running hibernate against hsqldb 【发布时间】:2014-08-19 10:39:04 【问题描述】:我已经从 oracle db 中导出了 sql,其中有这一行:
to_timestamp('23-APR-09 06.11.52.000000000 PM','DD-MON-RR HH.MI.SS.FF AM')
我有一个名为Test
的类,它有一个名为date
的实例TimeStamp
。喜欢:
@Entity class Test
TimeStamp date
当我尝试运行这些代码时:
session.createSQLQuery("insert into Test (date) values(to_timestamp('23-APR-09 06.11.52.000000000 PM','DD-MON-RR HH.MI.SS.FF AM'))").executeUpdate()
我得到一个例外:
org.hibernate.exception.DataException: could not execute native bulk manipulation query
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:102)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66)
at org.hibernate.engine.query.NativeSQLQueryPlan.performExecuteUpdate(NativeSQLQueryPlan.java:219)
at org.hibernate.impl.SessionImpl.executeNativeUpdate(SessionImpl.java:1300)
at org.hibernate.impl.SQLQueryImpl.executeUpdate(SQLQueryImpl.java:365)
Caused by: java.sql.SQLException: data exception: invalid datetime format: java.text.ParseException: Unparseable date: "23-APR-09 06.11.52.000000000 PM"
at org.hibernate.engine.query.NativeSQLQueryPlan.performExecuteUpdate(NativeSQLQueryPlan.java:210)
... 6 more
Caused by: org.hsqldb.HsqlException: data exception: invalid datetime format: java.text.ParseException: Unparseable date: "23-APR-09 06.11.52.000000000 PM"
... 7 more
我哪里出错了?
【问题讨论】:
【参考方案1】:尝试以下方法:
insert into Test (date) values(to_timestamp('23-APR-09 06.11.52.000000000 PM','DD-MON-YY HH.MI.SS.FF AM'))
根据位于http://www.hsqldb.org/doc/2.0/guide/builtinfunctions-chapt.html#bfc_datetime_format 的 HSQL 文档,当使用 R 表示法表示年份时,它必须是四个 R (RRRR)。 . .但 。 . .您的定义是两位数的年份,因此请改用 YY。
【讨论】:
以上是关于对 hsqldb 运行休眠时无法解析的日期的主要内容,如果未能解决你的问题,请参考以下文章
在 HSQLDB 上使用 Spring DBUnit 进行休眠和 Spring 数据 - 由于外键约束而无法删除
错误代码:38 DB::Exception:无法解析日期:值太短:无法从字符串解析日期:执行“FUNCTION toDate()”时