Я использую Play! 1.2.4 и PostgreSQL 9.1. Я создал таблицу со столбцом created_at
типа: отметка времени без часового пояса
. По умолчанию он имеет значение now ()
.
Проблема возникает, когда я получаю данные, используя свой класс Entity для этой таблицы. Поле createdAt
всегда возвращается null
. Вот определение поля:
@Column(name="created_at", insertable=false)
public java.sql.Date createdAt;
Все остальные поля заполнены правильно.Я попытался изменить тип поля на Дата
, Календарь
, Отметка времени
и т. Д. И попытался добавить аннотацию @Timestamp
. Но ни одна комбинация не оказалась успешной.
Заранее благодарим за любую помощь!
Для справки, вот DDL, который я использовал для создания таблицы.
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)
);
Обновление:
Я думаю, проблема связана с использованием JPA для вставки записи. База данных заполняет значение по умолчанию now ()
для created_at
, но каким-то образом Hibernate не знает об этом при выборке этой строки.
Если я запрашиваю уже существующую строку, поле createdAt
заполняется правильно!
Хорошо ... это сужает проблему.