Hibernar: el valor clave duplicado viola la restricción única
Estoy tratando de insertar un nuevo registro en mi postgresql usando Hibernate y Java EE.
Este es mi 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
}
Y aquí está mi import.sql
INSERT INTO basedesign (id, name, version) VALUES (1, 'China', 0);
Cuando construyo el código, el registro se agrega a db.
Sin embargo, cuando intento agregar un nuevo registro usando EntityManager, así:
BaseDesign design = new BaseDesign();
design.setName("USA");
em.persist(design);
Tengo:
Caused by: org.postgresql.util.PSQLException: ERROR: duplicate key value violates unique constraint "basedesign_pkey"
Detail: Key (id)=(1) already exists.
Ejecute el mismo comando por segunda vez, y será exitoso.
¿Por qué Hibernate no incrementa la ID de inicio por primera vez? ¿Y cómo configurarlo para que comience en el último entero insertado?