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.
 
     
     
     
     
    