【第22期】观点:IT 行业加班,到底有没有价值?

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

原创 2013年12月05日 10:26:25

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


版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

hibernate 自增变量的操作

最近初学Hibernate,遇到调用HibernateTemplate的save方法时,如果PO的ID字段没有手工设置无法保存的问题。  程序背景是,使用MySQL数据库,库表的ID字段设置...

Hibernate annotation 怎么设置主键自动增长?

需要在主键上增加一个@Id标识  @Id     @GeneratedValue(strategy = GenerationType.IDENTITY)     public int getId...
  • llyly3
  • llyly3
  • 2014-01-04 12:54
  • 1651

postgreSQL&hibernate整合实现主键自增

这个错误是咋回事勒,第一次使用postgreSQL,与hibernate整合,实现userid自增,结果出错了 this.getHibernateTemplate().save(userInfo...

Postgresql 创建主键并设置自动递增的三种方法

Postgresql 有以下三种方法设置主键递增的方式,下面来看下相同点和不同点。 --方法一 create table test_a (   id serial,   name ch...

Postgresql中的表id自增的方式的设置

在id中如果直接设置成int类型的话,在插入的时候没有指定id值就会出现: 在字段 "id" 中空值违反了非空约束 包括一些主流orm框架也会插入记录的时候也会报出这个错误 解决方法...

postgresql 主键自增

postgreSQL 自增需要使用序列 1.使用SERIAL CREATE TABLE users ( id SERIAL primary key , name character varying...

PostgreSQL让自增字段重新从1开始

TRUNCATE table RESTART IDENTITY; 其中table 就是你自己要修改的表,同时你要想这么修改必须将所有外键全部删除,否则不成功

Postgresql插入数据返回自增id

Postgresql插入数据返回自增id

postgres中通过触发器实现自增列

对于自增列,SQLServer中有identity属性。MySQL中有auto_increment 对于postgresql中,应该如何实现呢? postgresql的manual给了serial...

Hibernate两种方式进行映射配置

hibernate.cfg.xml文件如下:
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)