Что такое использование аннотации @Temporal в Hibernate?
документация Hibernate содержит информацию ниже для @Temporal
аннотация:
в простых API Java временная точность времени не определена. При работе с временными данными, которые вы, возможно, захотите, чтобы описать ожидаемая точность в базе данных. Временные данные могут иметь дату, время или Точность метки времени (т. е. фактическая дата, только время или оба). Использовать аннотация @Temporal для точной настройки.
что значит temporal precision of time is not defined
в смысле? Что такое temporal
данные и их точность? Как это подстроить?
4 ответа:
эта аннотация должна быть указана для постоянных полей или свойств типа
java.util.Date
иjava.util.Calendar
. Он может быть указан только для полей или свойств этих типов.The
Temporal
аннотация может использоваться в сочетании сBasic
аннотацииId
аннотации, илиElementCollection
аннотация (когда значение коллекции элементов имеет такой временной тип.в простых API Java временная точность времени не определена. При общении с временные данные, вы можете описать ожидаемую точность в базе данных. Временные данные могут иметь точность даты, времени или метки времени (т. е. фактическую дату, только время или оба). Используйте
@Temporal
аннотация, чтобы точно настроить это.временные данные-это данные, связанные со временем. Например, в системе управления контентом дата создания и дата последнего обновления статьи являются временными данными. В некоторых случаях временным данным требуется точность, и вы хотите хранить точные данные дата / время или оба (
TIMESTAMP
) в таблице базы данных.временная точность не указана в основных API Java.
@Temporal
этоJPA
аннотация, которая преобразует туда и обратно между меткой времени иjava.util.Date
. Он также преобразуетtime-stamp
во время. Например, в приведенном ниже фрагменте кода,@Temporal(TemporalType.DATE)
сбрасывает значение времени и сохраняет только дату.@Temporal(TemporalType.DATE) private java.util.Date creationDate;
согласно javadocs,
заметка для объявления соответствующий {@Code TemporalType} на запрос параметр метода. Обратите внимание, что эта аннотация может использоваться только на параметры типа {@link Date} с по умолчанию
TemporalType.DATE
[информация, собранная выше из различных источников]
@Temporal
является аннотацией JPA, которая может использоваться только для хранения времени (java.sql.Time
),дата(java.sql.Date
) или метка (java.sql.Timestamp
) в таблице базы данных. Обычно, когда мы объявляем поле даты в классе и пытаемся сохранить его. Он будет хранить метку времени в базе данных.private Date joinedDate;
сохраненное значение выглядит как 08-07-17 04: 33: 35.870000000 PM
если мы хотим сохранить только дату в в базе данных мы можем использовать эту аннотацию с атрибутом даты.
@Temporal(TemporalType.DATE) private Date joinedDate;
на этот раз, он будет хранить 08-07-17 в базе
есть и некоторые другие атрибуты
@Temporal
, который может быть использован на основе требований.
временные типы-это набор типов на основе времени, которые могут использоваться в сопоставлениях постоянных состояний.
список поддерживаемых временных типов включает в себя три
java.sql
типыjava.sql.Date
,java.sql.Time
иjava.sql.Timestamp
, и она включает в себя дваjava.util
типыjava.util.Date
иjava.util.Calendar
.The
java.sql
типы полностью без проблем. Они действуют так же, как и любой другой простой тип отображения и не нуждаются в особом рассмотрении.два
java.util
типы однако дополнительные метаданные указывают, какой из JDBCjava.sql
типы, используемые при взаимодействии с драйвером JDBC. Это делается путем аннотирования их с помощью@Temporal
аннотация и указание типа JDBC в качестве значенияTemporalType
перечислимый тип.существует три перечисленных значения даты, времени и метки времени для представления каждого из
java.sql
типы.