Создать тип столбца Datetime в Hibernate

Как правильно создать тип столбца Datetime в MariaDB с помощью Hibernate? Я пробовал это:

@Column
@Type(type = "date")
@Temporal(TemporalType.DATE)
private Date created_at;

Но я не могу найти подходящий тип в TemporalType для Datetime.

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
0
714
4

Ответы 4

Вам нужно использовать TemporalType.TIMESTAMP для DateTime.

Могу ли я использовать private DateTime startTime;?

Peter Penzov 04.10.2018 12:38

Ты должен быть способен. Есть ли конкретная причина, по которой вы хотите использовать DateTime? java.util.Date имеет компонент отметки времени.

Anand Mattikopp 04.10.2018 12:44

Вы имеете в виду DateTime от Joda Time? Вам лучше перейти на класс Java 8 LocalDateTime, который поддерживается с Hibernate 5.0 с дополнительной зависимостью модуля, а с 5.2 он встроен.

coladict 04.10.2018 16:34

Это то, что вам нужно сделать.

@Column
@Temporal(TemporalType.TIMESTAMP)
private Date created_at;

Вам не нужно писать @Type(type = "date"). И смени свой TemporalType на TimeStamp. Итак, наконец, ваш код будет таким:

@Column
@Temporal(TemporalType.TIMESTAMP)
private Date created_at;

PS: Вам не нужно писать тег @Column.

Используйте атрибут columnDefinition аннотации @Column:

@Column(name = "startTime", columnDefinition = "DATETIME")
@Temporal(TemporalType.TIMESTAMP)
private Date startTime;

Хорошо, но могу ли я использовать private DateTime startTime;?

Peter Penzov 04.10.2018 12:38

@Peter Penzov Можете попробовать?

Anand Mattikopp 04.10.2018 12:40

да. создать геттер и сеттер для использования вне класса.

Angad Bansode 04.10.2018 12:40

Другие вопросы по теме