Hibernar: o valor duplicado da chave viola a restrição exclusiva
Estou tentando inserir um novo registro no meu postgresql usando o Hibernate e o Java EE.
Este é o meu modelo:
@Entity
@SuppressWarnings("serial")
@Inheritance(strategy=InheritanceType.JOINED)
public class BaseDesign implements Serializable {
@Id
@Expose
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id", updatable = false, nullable = false)
private Long id;
@Version
@Column(name = "version")
private int version;
@Expose
@Column(name = "name")
private String name;
// getter and setter
}
E aqui está o meu import.sql
INSERT INTO basedesign (id, name, version) VALUES (1, 'China', 0);
Quando crio o código, o registro é adicionado ao db.
No entanto, quando tento adicionar um novo registro usando o EntityManager, desta forma:
BaseDesign design = new BaseDesign();
design.setName("USA");
em.persist(design);
Eu tenho:
Caused by: org.postgresql.util.PSQLException: ERROR: duplicate key value violates unique constraint "basedesign_pkey"
Detail: Key (id)=(1) already exists.
Execute o mesmo comando pela segunda vez e com sucesso.
Por que o Hibernate não incrementa o ID inicial na primeira vez? E como configurá-lo para começar no último número inteiro inserido?