如何强制Hibernate为主键创建类型为Serial的表

时间:2014-06-03 10:02:30

标签: java spring hibernate postgresql

在我的spring项目中,字段Id(用作我的实体类的主键)有这样的注释:

@Id
@Column(name = "id")
@GeneratedValue(strategy=GenerationType.AUTO)
private Integer id;

但是当Hibernate在我的postgresql数据库中创建表时,会使用Integer类型创建此字段。我希望使用Serial类型创建此字段。有没有办法做到这一点?

更新

我更改字段的声明如果为此:

@Id
@Column(name = "id", columnDefinition = "serial")
@GeneratedValue(strategy=GenerationType.AUTO)

现在,当我使用空白数据库启动应用程序时,数据库中没有创建任何内容。

更新2

我测试了这个配置:

@SequenceGenerator(allocationSize=1, initialValue=1, sequenceName="usuario_id_seq", name="usuario_id_seq")
@GeneratedValue(generator="usuario_id_seq", strategy=GenerationType.SEQUENCE)
@Generated(GenerationTime.INSERT)
@Id
@Column(name="id", columnDefinition="serial")
private Integer id;

表已创建,但主键创建为integer,而不是serial,我想要的。

0 个答案:

没有答案