Hibernate: двойное значение ключа нарушает уникальное ограничение
Я пытаюсь вставить новую запись в свой postgresql, используя Hibernate и Java EE.
Это моя модель:
@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
}
А вот и мой import.sql
INSERT INTO basedesign (id, name, version) VALUES (1, 'China', 0);
Когда я строю код, запись добавляется в БД.
Однако, когда я пытаюсь добавить новую запись, используя EntityManager, вот так:
BaseDesign design = new BaseDesign();
design.setName("USA");
em.persist(design);
Я получил:
Caused by: org.postgresql.util.PSQLException: ERROR: duplicate key value violates unique constraint "basedesign_pkey"
Detail: Key (id)=(1) already exists.
Выполните ту же команду во второй раз, и это успешно.
Почему Hibernate не увеличивает начальный идентификатор в первый раз? А как его настроить, чтобы начинать с последнего вставленного целого числа?