我有一个Spring MVC项目,该项目使用LocalDateTime
变量并使用MySQL
数据库。我希望这些变量以TIMESTAMP
的形式保存在数据库中,我尝试使用LocalDateTimeAttributeConverter
类,但它只是将其保存为DATETIME
。
如何在数据库中将DateTime
保存为类型Timestamp
?
答案 0 :(得分:0)
@Entity
public class MyEntity
{
// other properties
@Column
@Convert(converter = LocalDateTimeConverter.class)
private LocalDateTime dateTime;
}
@Converter(autoApply = true)
public class LocalDateTimeConverter implements AttributeConverter<LocalDateTime, Timestamp> {
@Override
public Timestamp convertToDatabaseColumn(LocalDateTime localDateTime) {
return Optional.ofNullable(localDateTime)
.map(Timestamp::valueOf)
.orElse(null);
}
@Override
public LocalDateTime convertToEntityAttribute(Timestamp timestamp) {
return Optional.ofNullable(timestamp)
.map(Timestamp::toLocalDateTime)
.orElse(null);
}
}
答案 1 :(得分:0)
尝试使用如下所示的方法。
@Column(name="timestamp", columnDefinition="TIMESTAMP DEFAULT CURRENT_TIMESTAMP")
答案 2 :(得分:-1)
尝试在属性上添加此注释
@Temporal(TemporalType.TIMESTAMP)