Java Date Hibernate切断时间

Vla*_*lad 11 java oracle time hibernate date

我在Oracle DB中有一个Date类型列,它包含日期和时间.但是当我试图在java应用程序中获取数据时,它将返回带有一堆零而不是实时的日期.在代码中它将是:

SQLQuery sqlQuery = session.createSQLQuery("SELECT table.id, table.date FROM table");
List<Object[]> resultArray = sqlQuery.list();
Date date = (Date)resultArray[1];
Run Code Online (Sandbox Code Playgroud)

如果它是26-feb-2010 17:59:16在DB中我会得到26-feb-2010 00:00:00如何随着时间的推移得到它?

小智 10

正如其他人已经说过的那样,你需要java.sql.Timestamp用来获得时间.

但是,如果@Temporal(TemporalType.TIMESTAMP)在Oracle的DATE列上使用注释,Hibernate将会抱怨并抛出架构验证错误.要避免这些,请添加columnDefinition如下:

@Temporal(TemporalType.TIMESTAMP)
@Column(name="EVENTTIME", columnDefinition="DATE")
private Date eventTime;
Run Code Online (Sandbox Code Playgroud)

  • 我不能赞成这个!这应该是公认的答案! (2认同)

Ale*_*yak 4

我不是 Oracle 专家,但您可能需要DateTime列类型来获取时间戳。

为此,您需要使用java.sql.TimestampJDBC 类型。

  • 在 Oracle 中,“DATE”数据类型包含日期和时间信息,非常类似于“java.lang.Date”。 (3认同)