время в Java и Hibernate - PullRequest
       1

время в Java и Hibernate

1 голос
/ 03 февраля 2012

Я новичок в спящем режиме. У меня есть таблица в моей БД (mySQL) со столбцом «startTime». Это тип - время.
Я скачал пакет org.joda.time и использую тип Period, но это не работает и выдает исключение: 10954 [main] ERROR org.hibernate.property.BasicPropertyAccessor - expected type: org.joda.time.Period, actual value: java.sql.Time.

Какой тип должен быть членом в моем коде Java?

Ответы [ 4 ]

1 голос
/ 03 февраля 2012

Hibernate изначально управляет java.util.Date (и подклассами вроде java.sql.Date).

Для использования объекта Joda Time в вашей объектной модели вы можете использовать предоставляемые Joda типы Hibernate для Hibernate до версии 3.6 и проект Usertype для Hibernate 4.

1 голос
/ 03 февраля 2012

Вы всегда должны хранить дату и время в UTC в базе данных. java.util.Date - это то, что вы должны использовать, поскольку оно представляет дату и время в формате UTC, и hibernate поддерживает его.

Похожие записи Как хранить дату / время и метки времени в часовом поясе UTC с JPA и Hibernate

Если вы хотите использовать только joda-time, тогда уже написаны конвертеры. Вы должны использовать Joda time - Hibernate поддержка библиотека.

0 голосов
/ 03 февраля 2012

Я использовал LocalDateTime из пакета joda, и я использовал «org.joda.time.contrib.hibernate.PersistentLocalDateTime» в качестве пользовательского типа в hibernate, и это работает. Не уверен, что это то, что вы используете.

0 голосов
/ 03 февраля 2012

Вам нужно написать конвертер из java.sql.time в период jodatime и использовать его в вашем отображении.Это происходит потому, что в базе данных он всегда будет хранить значение как java.sql.Time

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...