0
我有以下PostgreSQL表:春數據PostgreSQL的鍵已經存在錯誤
CREATE TABLE IF NOT EXISTS levels (
id SERIAL PRIMARY KEY,
name VARCHAR(256),
created_date timestamp,
updated_date timestamp
);
和對應的Spring數據實體:
@Entity
@Table(name = "levels")
public class Level extends BaseEntity implements Serializable {
private static final long serialVersionUID = 642499791438799548L;
@Id
@SequenceGenerator(name = "levels_id_seq", sequenceName = "levels_id_seq", allocationSize = 1)
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "levels_id_seq")
private Integer id;
private String name;
...
}
@MappedSuperclass
public abstract class BaseEntity {
@Column(name = "created_date")
private Date createdDate;
@Column(name = "updated_date")
private Date updatedDate;
@PrePersist
void onCreate() {
setCreatedDate(new Date());
}
@PreUpdate
void onPersist() {
setUpdatedDate(new Date());
}
...
}
這是我的春節,數據倉庫根:
@Repository
public interface LevelRepository extends JpaRepository<Level, Integer> {
Level findByName(String name);
}
現在,當我嘗試使用Spring LevelRepository保存一個新的Level實體時,我收到以下錯誤:
ERROR: duplicate key violates unique constraint « levels_pkey »
DETAIL: Key "(id)=(5)" already exists.
我的配置有什麼問題?
您嘗試過'strategy = GenerationType.AUTO'嗎? – gonzo
你確定你的數據庫中沒有條目,已經有了ID = 5嗎? –
我已經有ID = 5的實體在我的數據庫..但我認爲它應該足夠聰明,以生成新的不存在的ID ...但無論如何,我可以是錯誤的,因爲我是新的PostgreSQL – alexanoid