如何设置Hibernate4+PostgreSQL中的自增字段?

首先,在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名字,然后与之关联。



版权声明:本文为jeckykang原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。