我正在尝试在我接手的项目中设置嵌入式数据库H2。
现在我们有一个列值为datetime2
的SQL Server服务器。
H2无法创建类型为datetime2
的列,如果我将其更改为正常datetime
则一切正常但当然项目本身会出现问题导致hibernate注释错误,因为DB列是datetime2
。
代码:
@Column(name = "LASTUPDATETIME", columnDefinition = "datetime2 DEFAULT CURRENT_TIMESTAMP")
private Timestamp timeStamp;
可以用H2完成(更改注释以进行测试或让H2接受datetime2)或者我是否必须搜索另一个嵌入式数据库?
答案 0 :(得分:2)
H2数据库当前不支持数据类型datetime2
(从版本1.3.176开始)。但是,现在支持它was added to the trunk并将在下一版本中提供。
因此,如果您现在想要使用H2,那么您可以使用更新的版本(例如,您可以自己构建它),或者更改为datetime
,直到您使用的是较新的版本。
答案 1 :(得分:0)
Java Date列类型应该适合您,datetime2是Microsoft特定的数据类型。我之前已经将应用程序从MS SQL Server无缝迁移到H2数据库,我当然不得不更改注释,但计算等不受影响。
答案 2 :(得分:0)
可能是切向的。 H2中支持DATETIME2
,但DATETIME2(7)
(或任何其他精度值)不再像H2 4.197那样工作。