![](/img/trans.png)
[英]Create column type Datetime in Hibernate for LocalDateTime
[英]Create DATETIME in MariaDB using LocalDateTime column type in JPA
我需要使用JPA中的LocalDateTime
列類型在MariaDB中創建DATETIME
列。
我創建了這個實體:
@Column
private LocalDateTime created_at;
但是當我存放代碼時,MariDB中的列將更新為DATE
。 我需要DATETIME
。
我也試過這個:
@Column
@Temporal(TemporalType.TIMESTAMP)
private LocalDateTime created_at;
但是,當我部署代碼時,我得到了錯誤:
@Temporal should only be set on a java.util.Date or java.util.Calendar property
我使用Java 10和spring-boot-starter-parent
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.5.RELEASE</version>
<relativePath />
</parent>
有什么解決辦法嗎? 例如,有沒有一種方法可以在不使用@Temporal
情況下將列類型設置為DATETIME
?
如果要將LocalDateTime
存儲在TIMESTAMP
列中,則需要實現到java.sql.Timestamp
的映射。
您需要實現AttributeConverter接口。
@Converter(autoApply = true)
public class LocalDateTimeAttributeConverter implements AttributeConverter<LocalDateTime, Timestamp> {
@Override
public Timestamp convertToDatabaseColumn(LocalDateTime locDateTime) {
return (locDateTime == null ? null : Timestamp.valueOf(locDateTime));
}
@Override
public LocalDateTime convertToEntityAttribute(Timestamp sqlTimestamp) {
return (sqlTimestamp == null ? null : sqlTimestamp.toLocalDateTime());
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.