【问题标题】:H2 DB with datetime2带有 datetime2 的 H2 DB
【发布时间】:2014-05-19 06:35:36
【问题描述】:

我正在尝试在我接手的项目中设置嵌入式数据库 H2。 现在我们有了一个列值类型为datetime2的sql server。

H2 无法创建类型为datetime2 的列,如果我将其更改为正常的datetime,那么一切都会正确,但当然项目本身会出现问题,导致休眠注释错误,因为 DB 列是 @987654325 @。

代码:

@Column(name = "LASTUPDATETIME", columnDefinition = "datetime2 DEFAULT CURRENT_TIMESTAMP")
private Timestamp timeStamp;

这可以用 H2 完成(更改注释以进行测试或让 H2 接受 datetime2)还是我必须搜索另一个嵌入式数据库?

【问题讨论】:

  • H2 数据库目前不支持数据类型datetime2。但是,对它的支持是 added to the trunk now,并将在下一版本中提供。
  • 感谢 Thomas 的回复,可惜它只是一个评论,因为我应该接受这个作为答案。感谢您的快速反馈。

标签: java sql hibernate h2


【解决方案1】:

Java Date 列类型应该适合您,datetime2 是 Microsoft 特定的数据类型。我之前已经将应用程序从 MS SQL Server 无缝迁移到 H2 数据库,当然我不得不更改注解,但计算等不受影响。

【讨论】:

  • 我明白你的意思,但我怎样才能改变 columnDefinition? (我的错不包括在问题中)
  • H2的大佬亲自给你答案:)
【解决方案2】:

H2 数据库目前不支持数据类型datetime2(从版本 1.3.176 开始)。不过,现在支持 was added to the trunk 并将在下一个版本中提供。

所以,如果您现在想使用 H2,那么您可以使用更新的版本(例如,您可以自己构建它),或者更改为 datetime,直到您使用更新的版本。

【讨论】:

  • 看来datetime2到今天还是不支持的。
【解决方案3】:

可能是相切的。 H2 支持 DATETIME2,但自 H2 4.197 起,DATETIME2(7)(或任何其他精度值)不再有效。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多