PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Comment mapper la colonne d'horodatage au type JPA ?

Je n'ai pas résolu le problème exactement, mais je l'ai contourné.

Au lieu que la base de données fournisse la valeur par défaut de now() , je l'ai exprimé en JPA avec @PrePersist :

@Column(name="created_at", nullable=false)
@Temporal(TemporalType.TIMESTAMP)
public Date createdAt;

@PrePersist
protected void onCreate() {
    createdAt = new Date();
}

Cela fonctionne bien ! Inspiration tirée de cette réponse .Je ne sais toujours pas pourquoi Hibernate n'a pas été mis à jour avec la valeur par défaut appliquée dans la base de données. Il était bloqué en pensant que la valeur était toujours nulle.