В документации по Hibernate есть информация для @Temporal
аннотации ниже:
В простых API Java временная точность времени не определена. При работе с временными данными вы можете описать ожидаемую точность в базе данных. Временные данные могут иметь точность DATE, TIME или TIMESTAMP (т.е. фактическая дата, только время или и то, и другое). Используйте аннотацию @Temporal, чтобы настроить это.
Что temporal precision of time is not defined
значит? Что такое temporal
данные и их точность? Как он настраивается?
Ответы:
Эта аннотация должна быть указана для постоянных полей или свойств типа
java.util.Date
иjava.util.Calendar
. Его можно указывать только для полей или свойств этих типов.Temporal
Аннотации могут быть использованы в сочетании сBasic
аннотациями, вId
аннотации, илиElementCollection
аннотациях (когда значение элемента коллекции имеет такой временный типа.В простых API Java временная точность времени не определена. Имея дело с временными данными, вы можете описать ожидаемую точность в базе данных. Временные данные могут иметь точность DATE, TIME или TIMESTAMP (т.е. фактическая дата, только время или и то, и другое). Используйте
@Temporal
аннотацию, чтобы настроить это.Временные данные - это данные, относящиеся ко времени. Например, в системе управления контентом дата создания и дата последнего обновления статьи являются временными данными. В некоторых случаях временные данные требуют точности, и вы хотите сохранить точную дату / время или и то, и другое (
TIMESTAMP
) в таблице базы данных.Временная точность не указана в основных API Java.
@Temporal
- этоJPA
аннотация, которая преобразует метку времени иjava.util.Date
. Он также преобразуетсяtime-stamp
во время. Например, в приведенном ниже фрагменте@Temporal(TemporalType.DATE)
удаляется значение времени и сохраняется только дата .Согласно javadocs,
[Информация выше собрана из различных источников]
источник
yyyy-MM-dd
02/10/2017
и я хочу преобразовать его в2017-10-02
или2017/10/02
@Temporal
- это аннотация JPA, которую можно использовать для хранения в таблице базы данных следующих элементов столбца:java.sql.Date
)java.sql.Time
)java.sql.Timestamp
)Обычно, когда мы объявляем
Date
поле в классе и пытаемся его сохранить.Он будет храниться в базе данных как TIMESTAMP .
Приведенный выше код будет хранить значение, как 08-07-17 04: 33: 35.870000000 PM
Если мы хотим сохранить в базе данных только ДАТУ ,
мы можем использовать / define
TemporalType
.На этот раз он будет хранить в базе данных 08-07-17.
Есть и другие атрибуты,
@Temporal
которые можно использовать в зависимости от требований.источник
Временные типы - это набор основанных на времени типов, которые могут использоваться в постоянных сопоставлениях состояний.
Список поддерживаемых типов временных включает в себя три
java.sql
типаjava.sql.Date
,java.sql.Time
иjava.sql.Timestamp
, и она включает в себя дваjava.util
типаjava.util.Date
иjava.util.Calendar
.Эти
java.sql
типы полностью без проблем. Они действуют так же, как и любой другой простой тип сопоставления, и не требуют особого рассмотрения.Однако для этих двух
java.util
типов требуются дополнительные метаданные, чтобы указать, какой изjava.sql
типов JDBC использовать при взаимодействии с драйвером JDBC. Это делается путем аннотирования их@Temporal
аннотацией и указания типа JDBC как значенияTemporalType
перечислимого типа.Есть три пронумерованных значения DATE, TIME и TIMESTAMP для представления каждого из
java.sql
типов.источник
использовать это
источник
Если вы ищете краткий ответ:
В случае использования java.util.Date Java действительно не знает, как напрямую относиться к типам SQL. Вот когда
@Temporal
вступает в игру. Он используется для указания желаемого типа SQL.Источник: Baeldung
источник
Я использую Hibernate 5.2, и
@Temporal
он больше не требуется.java.util.date , sql.date , time.LocalDate сохраняются в БД с соответствующим типом данных как Дата / отметка времени.
источник
Мы используем аннотацию @Temporal для вставки даты, времени или того и другого в таблицу базы данных. Используя TemporalType, мы можем вставлять данные, время или обе таблицы int.
источник