Создать тип столбца Datetime в Hibernate для LocalDateTime - PullRequest
0 голосов
/ 05 октября 2018

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

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

Но я получаю исключение:

Caused by: org.hibernate.AnnotationException: @Temporal should only be set on a java.util.Date or java.util.Calendar property: org.plugin.entity.Transactions.created_at

Можете ли вы предложить какое-то решение?

Ответы [ 2 ]

0 голосов
/ 05 октября 2018

У вас есть зависимость spring-boot-starter-data-jpa, которая имеет hibernate-core в качестве зависимости компиляции.

Если вы используете весеннюю загрузку 1.4.x или выше, вы получаете Hibernate 5:

https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-data-jpa/1.4.0.RELEASE

Вы просто должны добавить следующую зависимость:

<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-java8</artifactId>
    <version>5.0.0.Final</version>
</dependency>

, которая обеспечивает поддержку Java 8 LocalDateTime API.

Если вы используете загрузочную версию Spring 2.xx или выше spring-boot-starter-data-jpa поставляется с hibernate 5.2, в который встроена Java 8 LocalDateTime API, поэтому никаких дополнительных зависимостей не требуется.

Вы можете просто написать:

private LocalDateTime created_at;
0 голосов
/ 05 октября 2018

Обновите версию Hibernate до 5.x или более поздней, есть

<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-java8</artifactId>
    <version>5.0.0.Final</version>
</dependency>

Вам больше ничего не нужно делать.Просто добавьте зависимость.Конечно, другие типы Java8 также должны работать.

private LocalDateTime created_at;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...