Архив метки: java.util.Calendar

Использование аннотации @Temporal для уточнения типа колонки, создаваемой Hibernate’ом для полей типа java.util.Date и java.util.Calendar

При автоматическом создании схемы базы данных на основании аннотированных классов предметной области мы можем уточнить тип данных в колонке, которая соответствует полям типа java.util.Date и java.util.Calendar. Поля типа Date хранят информацию о количестве миллисекунд с т.н. начала эпохи. Но такой формат может быть избыточным. Возможно в реальности нас интересует только дата или только время, возможно и то и другое. Соответственно в БД мы хотели бы видеть колонку либо типа DATE, либо типа TIME, либо TIMESTAMP. Аннотация @Temporal позволяет уточнить, какого именно типа создавать колонку для конкретного поля типа Date.

Отметим, что тип java.util.Date (Calendar) является устаревшим. Он хранит время с точностью до миллисекунды (три знака после запятой). Современные типы данных, например, java.time.LocalDateTime хранят время с точностью до микросекунды (шесть знаков после запятой).

Читать далее