I'm using Play! 1.2.4 and PostgreSQL 9.1. I created a table with a created_at
column, of type: timestamp without time zone
. It has a default value of now()
.
The problem comes when I fetch data using my Entity class for this table. The createdAt
field is always coming back null
. Here is the field definition:
@Column(name="created_at", insertable=false)
public java.sql.Date createdAt;
All the other fields are populated correctly. I have tried changing the field type to a Date
, Calendar
, Timestamp
, etc., and tried adding a @Timestamp
annotation. But no combination has proved successful.
Thanks in advance for any help!
For reference, here is the DDL I used to create the table.
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)
);
Update:
I think the problem has to do with using JPA to insert a record. The database populates a default value of now()
for created_at
, but somehow Hibernate doesn't know about it when fetching that row.
If I query for a row that already existed, the createdAt
field is populated correctly!
OK... this narrows down the problem.