在MySQL数据库中将“ DATETIME”保存为“ TIMESTAMP”

时间:2019-04-04 11:32:55

标签: java mysql spring hibernate spring-mvc

我有一个Spring MVC项目,该项目使用LocalDateTime变量并使用MySQL数据库。我希望这些变量以TIMESTAMP的形式保存在数据库中,我尝试使用LocalDateTimeAttributeConverter类,但它只是将其保存为DATETIME

如何在数据库中将DateTime保存为类型Timestamp

3 个答案:

答案 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)