我正在使用“玩”! 1.2.4 和 PostgreSQL 9.1。我创建了一个表created_at
列,类型:timestamp without time zone
。它的默认值为now()
.
当我使用该表的实体类获取数据时,问题就出现了。这createdAt
场总是会回来的null
。这是字段定义:
@Column(name="created_at", insertable=false)
public java.sql.Date createdAt;
所有其他字段均已正确填充。我尝试将字段类型更改为Date
, Calendar
, Timestamp
等,并尝试添加@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)
);
Update:我认为问题与使用 JPA 插入记录有关。数据库填充默认值now()
for created_at
,但不知何故 Hibernate 在获取该行时并不知道这一点。
如果我查询已经存在的行,createdAt
字段已正确填充!
好的...这缩小了问题的范围。