Я пытаюсь автоматически сохранить дату в базе данных.
У меня есть @Embeddable
:
@Embeddable
@Getter
@Setter
public class Audit {
@Column(name = "created_at", updatable = false, columnDefinition = "TIMESTAMP WITH TIME ZONE")
private OffsetDateTime createdAt;
@Column(name = "updated_at", columnDefinition = "TIMESTAMP WITH TIME ZONE")
private OffsetDateTime updatedAt;
@PreUpdate
public void preUpdate() {
this.updatedAt = OffsetDateTime.now();
}
@PrePersist
public void preCreate() {
this.createdAt = OffsetDateTime.now();
}
}
И моя сущность с:
@Embedded
private Audit audit = new Audit();
Я перехват этого исключения:
org.postgresql.util.PSQLException: ERROR: a null value in the created_at column violates the NOT NULL constraint
(перевод с ru)
Если я переместу эти поля в свою сущность и добавлю @PrePersist в оба поля и напишу
private OffsetDateTime createdAt = OffsetDateTime.now();
private OffsetDateTime updatedAt = OffsetDateTime.now();
тогда это работает для меня.
Что я не так, чтобы сохранить дату в базе данных?