Как инициализировать LocalDateTime как TIMESTAMP в MySQL с Hibernate? - PullRequest
0 голосов
/ 11 сентября 2018

Если я хочу, чтобы поля LocalDateTime всегда имели тип TIMESTAMP в базе данных mysql: можно ли добиться большего, чем необходимость постоянно определять @Column(columnDefinition = "TIMESTAMP NULL DEFAULT NULL") среди различных классов?

@Entity
public class MyTable {
    @Column(columnDefinition = "TIMESTAMP NULL DEFAULT NULL")
    private LocalDateTime mymodification;
}

Одно и то же определение @Column должно повторяться снова и снова для каждого класса, который должен сохранить LocalDateTime как отметку времени вместо datetime ...

1 Ответ

0 голосов
/ 11 сентября 2018

InheritanceType.TABLE_PER_CLASS удалит избыточность, а @ PrePersist создаст экземпляр LocalDateTime

@MappedSuperclass
public abstract class DateHolder {
    @Column(columnDefinition = "TIMESTAMP NULL DEFAULT NULL")
    private LocalDateTime myModification;

    //Getters And Setters ¯\_(ツ)_/¯
}

@Entity
public class MyTable extends DateHolder {

    @PrePersist
    public void prePersist() {
        setMyModification(LocalDateTime.now());
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...