¿Cómo asignar la columna de marca de tiempo al tipo JPA?
Estoy usando Play! 1.2.4 y PostgreSQL 9.1. Creé una tabla con unacreated_at
columna, de tipo:timestamp without time zone
. Tiene un valor predeterminado denow()
.
El problema surge cuando busco datos usando mi clase Entity para esta tabla. LoscreatedAt
field siempre regresanull
. Aquí está la definición de campo:
@Column(name="created_at", insertable=false)
public java.sql.Date createdAt;
Todos los demás campos se rellenan correctamente. He intentado cambiar el tipo de campo aDate
, Calendar
, Timestamp
, etc., e intenté agregar una@Timestamp
anotación. Pero ninguna combinación ha resultado exitosa.
¡Gracias de antemano por cualquier ayuda
Para referencia, aquí está el DDL que usé para crear la tabla.
CREATE TABLE Users
(
id serial NOT NULL,
username text NOT NULL,
email text NOT NULL,
password_hash text NOT NULL DEFAULT 0,
created_at timestamp without time zone DEFAULT now(),
CONSTRAINT Users_pkey PRIMARY KEY (id),
CONSTRAINT Users_username_key UNIQUE (username)
);
Actualizar Creo que el problema tiene que ver con el uso de JPA para insertar un registro. La base de datos rellena un valor predeterminado denow()
paracreated_at
, pero de alguna manera Hibernate no lo sabe cuando busca esa fila.
Si busco una fila que ya existía, lacreatedAt
campo se rellena correctamente! OK ... esto reduce el problema.