sql >> Base de Datos >  >> RDS >> PostgreSQL

¿Cómo asignar la columna de marca de tiempo al tipo JPA?

No resolví el problema exactamente, pero lo solucioné.

En lugar de que la base de datos proporcione el valor predeterminado de now() , lo expresé en JPA con @PrePersist :

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

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

¡Eso funciona bien! Inspiración tomada de esta respuesta Todavía no estoy seguro de por qué Hibernate no se actualizó con el valor predeterminado que se aplicó en la base de datos. Se quedó atascado pensando que el valor aún era nulo.