Сохранение 'DATETIME' как 'TIMESTAMP' в базе данных MySQL - PullRequest
0 голосов
/ 04 апреля 2019

У меня есть проект Spring MVC, который использует LocalDateTime переменные и использует MySQL базу данных. Я хочу, чтобы эти переменные были сохранены в базе данных как TIMESTAMP, я пытался использовать класс LocalDateTimeAttributeConverter, но он только сохраняет их как DATETIME.

как я могу сохранить DateTime как тип Timestamp в базе данных?

Ответы [ 3 ]

0 голосов
/ 04 апреля 2019

Попробуйте добавить эту аннотацию к свойству

@Temporal(TemporalType.TIMESTAMP)
0 голосов
/ 04 апреля 2019

Попробуйте использовать как ниже.

@Column(name="timestamp", columnDefinition="TIMESTAMP DEFAULT CURRENT_TIMESTAMP")

0 голосов
/ 04 апреля 2019
        @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);
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...