моя проблема в том, что когда я делаю запрос к базе данных с заказом startTime, где startTime - это время Joda, он возвращает время, начинающееся в 16:00.
Теперь, 4 часа дня - ровно 8 часов от 12 часов ночи, и по совпадению я живу в Гонконге, и это мой часовой пояс, а часовой пояс Гонконга - 8 часов с полуночи.
Мое поле JPT startTime:
@Index(name = "bookingStartTimeIndex")
@Column(name = "start_time")
@Type(type="org.joda.time.contrib.hibernate.PersistentLocalTimeAsTime")
private LocalTime startTime;
Я использую JPA / Hibernate, и мой запрос в основном для выбора * где:
order by b.startTime asc
Теперь в этой таблице хранятся объекты со временем с 9:00 до 18:00. Из этого «порядка по» возвращаются сущности, начиная с 16:00 до 18:00, затем с 9:00 до 16:00.
Похоже, он решил, что 4 часа ночи - это как-то полночь.
Это база данных postgresql, когда я смотрю, что мой столбец базы данных имеет тип данных time_without_time_zone.
Так, как я могу получить это, чтобы заказать организации обычно с 9:00 до 18:00? * 10101 *
Обходной путь, который я нашел, состоит в том, чтобы перейти на использование PersistentLocalTimeExact, это работает для
меня в условиях, которые я упомянул, и решает все проблемы, которые у меня были с 4 вечера ...
@ Index (name = "bookingStartTimeNumberIndex")
@Column (name = "start_time_number", nullable = true)
@Type (тип = "org.joda.time.contrib.hibernate.PersistentLocalTimeExact")
private LocalTime startTimeNumber;