我在PostgreSQL中创建一个序列有问题,我使用SpringBoot / Hibernate / JPA来解决这个问题,当应用程序创建表和序列时,Hibernate不使用 schema 属性对于@SequenceGenerator。
@Entity
@Table(schema=Schemas.ADMIN, name="tbl_client")
public class Client implements CommonsEntity<Integer>{
private static final long serialVersionUID = 1L;
static final String SQ_CLIENT = "sq_client";
@Id
@Column(name="id_client")
@GeneratedValue(generator=Client.SQ_CLIENT, strategy=GenerationType.AUTO)
@SequenceGenerator(schema=Schemas.ADMIN, name=Client.SQ_CLIENT sequenceName=Client.SQ_CLIENT, initialValue=1, allocationSize=1)
private Integer id;
在Postgre中创建的序列是:创建序列sq_client
我使用SpringBoot 1.3.5和Hibernate 4.3.11。
感谢。
答案 0 :(得分:1)
我认为您对GeneratedValue使用的策略不正确。
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = SQ_CLIENT)
@SequenceGenerator(name = SQ_CLIENT, sequenceName = SQ_CLIENT,
allocationSize = 1,initialValue=1)
private long id;