首先,在PostgreSQL中是通过创建一个sequence来设置自增字段的,如下:
-- Sequence: seq_department_id
-- DROP SEQUENCE seq_department_id;
CREATE SEQUENCE seq_department_id
INCREMENT 1
MINVALUE 1
MAXVALUE 9999999999
START 2
CACHE 1;
ALTER TABLE seq_department_id
OWNER TO postgres;
相对应的,你可以将ID设置成serial类型,如果这么做,PostgreSQL将自动为你设置sequence类似:department_id_seq这样。
但是,如果你用Hibernate4的annotation的话,你也可以将ID设置成integer,然后在你的entity类中这么做:
@Id
@SequenceGenerator(name = "seq_department_id", allocationSize = 1, initialValue = 1, sequenceName = "seq_department_id")
@GeneratedValue(generator = "seq_department_id", strategy = GenerationType.SEQUENCE)
private long id;
此时Hibernate可以自己去数据库中找对应的sequence名字,然后与之关联。