gpt4 book ai didi

java - Hibernate MSSQL datetime2 映射

转载 作者:搜寻专家 更新时间:2023-10-30 20:17:35 25 4
gpt4 key购买 nike

我有一个存储过程,它返回一个列,该列的数据类型在数据库中为 datetime2,在 Java 文件中为 Date。当我试图在从数据库获取的时间上调用 getTime() 时。它返回 19994321211 毫秒,相当于 2015 年 5 月 4 日星期一 00:00:00 IST。理想情况下,它应该返回 2015-05-04 15:21:52 的毫秒数,因为这是直接执行过程时数据库中显示的时间。

由于我是 Hibernate 的新手,我无法理解这个问题是与 hibernate 映射有关还是我遗漏的其他问题。

<hibernate-mapping>
<sql-query name="getMLC">
<return-scalar column="mlcid" type="int" />
<return-scalar column="completionTime" type="date" />
{ call lsc.MLC_Get(:ABC, :XYZ, :ErrorCode)}
</sql-query>
</hibernate-mapping>

class Mlc implements java.io.Serializable {

private Integer mlcid;
private Date completionTime;
// getter and setter
}

最佳答案

尝试像这样注册一个新的驱动程序:

public class DateTime2SQLServerDialect extends SQLServer2008Dialect {

public DateTime2SQLServerDialect () {
super();
registerColumnType(Types.DATE, "datetime2");
}
}

然后改用这个方言:

<property name="hibernate.dialect">my.package.DateTime2SQLServerDialect</property>

也尝试改变这个:

<return-scalar column="completionTime" type="date" />

为此:

<return-scalar column="completionTime" type="timestamp" />

关于java - Hibernate MSSQL datetime2 映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30028345/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com