Postgres中的GeneratedValue

我的实体类映射如下:

@Entity

@Audited

@Table(name="messages_locale")

public class Locale {

@Id

@GeneratedValue

@Getter @Setter //Project Lombok's annotations, equal to generated getter and setter method

private int id;

(...)

我创建干净的新数据库和属性:

<prop key =“ hibernate.hbm2ddl.auto”>创建</ prop>

为什么在创建数据库后,地狱(抱歉,此错误浪费了将近两天),我的postgres数据库中有一个序列?

CREATE SEQUENCE hibernate_sequence

INCREMENT 1

MINVALUE 1

MAXVALUE 9223372036854775807

START 2

CACHE 1;

ALTER TABLE hibernate_sequence

OWNER TO postgres;

我不想有一个序列,我只是想自动增加自动生成的值。

回答:

在PostgreSQL中,自动增量使用SERIAL伪类型进行处理。您在执行时使用此类型CREATE TABLE

现在要点-这种SERIAL伪类型创建一个序列。PostgreSQL使用创建的序列来处理自动增量。该id列的默认值为-

nextval('your_sequence_name')

在Hibernate中针对User实体:

@Id

@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "users_seq_gen")

@SequenceGenerator(name = "users_seq_gen", sequenceName = "users_id_seq")

public Long getId() {

return id;

}

在这里阅读:

http://www.postgresql.org/docs/8.4/static/datatype-numeric.html#DATATYPE-

SERIAL

http://www.neilconway.org/docs/sequences/

以上是 Postgres中的GeneratedValue 的全部内容, 来源链接: utcz.com/qa/421114.html

回到顶部