Как PrePersist OffsetDateTime до Postgres с Jpa / Hibernate? - PullRequest
0 голосов
/ 26 апреля 2020

Я пытаюсь автоматически сохранить дату в базе данных.

У меня есть @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();

тогда это работает для меня.

Что я не так, чтобы сохранить дату в базе данных?

...