У меня есть столбец типа Даты в DB Oracle, и он содержит дату и время наверняка. Но когда я пытаюсь получить данные в JAVA-приложении, это возвратит дату с набором нулей вместо реального времени. В коде это будет похоже:
SQLQuery sqlQuery = session.createSQLQuery("SELECT table.id, table.date FROM table");
List<Object[]> resultArray = sqlQuery.list();
Date date = (Date)resultArray[1];
Если это было 26 февраля 2010 17:59:16 в DB, я получу 26 февраля 2010 0:00:00, Как получить его со временем?
Я не эксперт в Oracle, но вам, вероятно, нужен тип столбца DateTime
, чтобы получить отметку времени.
С этим вам нужно использовать java.sql.Timestamp
JDBC тип.
Попробуйте следующее:
session.createSQLQuery("SELECT table.id as i, table.date as d FROM table")
.addScalar("i", Hibernate.LONG) // Or whatever type id is
.addScalar("d", Hibernate.TIMESTAMP);
Может у вас эта проблема? Убедитесь, что у вас последняя версия драйвера JDBC, имя файла должно быть ojdbc5.jar.
У меня была такая же проблема (тип Oracle Date в базе данных).
Следующее отображение работает для меня:
<property name="timeStamp" type="java.util.Date">
<column name="TIME_STAMP"/>
</property>