使用JPA在MariaDB中创建列类型Datetime的正确方法是什么?我尝试过:
@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
您可以提出一些解决方案吗?
答案 0 :(得分:2)
您有一个spring-boot-starter-data-jpa
依赖项,其中有hibernate-core
作为编译依赖项。
如果您使用的是Spring Boot 1.4.x或更高版本,则会获得Hibernate 5:
您只需添加以下依赖项:
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-java8</artifactId>
<version>5.0.0.Final</version>
</dependency>
提供对Java 8 LocalDateTime API的支持。
如果您使用的是Spring引导版本2.x.x或更高版本,spring-boot-starter-data-jpa
随带有内置Java 8 LocalDateTime API的hibernate 5.2一起提供,因此不需要其他依赖项。
您可以简单地写:
private LocalDateTime created_at;
答案 1 :(得分:0)
将Hibernate更新到5.x或最新版本,有
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-java8</artifactId>
<version>5.0.0.Final</version>
</dependency>
您无需执行其他任何操作。只需添加依赖项即可。当然,其他Java8类型也应该起作用。
private LocalDateTime created_at;