我将休眠配置如下:

Entity
@Table (name = "statuspaatelling")
public class StatusPaaTelling {

private Long statusPaaTellingId;

@Id
@Column(name = "statusPaaTellingID")
@GeneratedValue(strategy = GenerationType.AUTO)
public Long getStatusPaaTellingId() {
    return statusPaaTellingId;
}


当我创建新元素时,它工作得很好,但是现在突然间,它创建了已经存在的值。而且我无法创建新元素,因为我的主键有重复的条目。我正在使用MySQL数据库。

Duplicate entry '3155220' for key 'PRIMARY'
Error Code: 1062
Call: INSERT INTO statuspaatelling (statusPaaTellingID, something) VALUES(?, ?)


我认为当我导入数据库转储并切换为使用它时可能首先发生。我也尝试过没有运气的切换,但是它们具有完全相同的设置,所以我不要紧。任何人都有想法为什么GeneratedValue突然不起作用?

最佳答案

您可能正在点击this MySQL bug(7年前开业!!!)。如果您阅读了评论,则有人使用sed发布了一种解决方法来修复MySQL转储,例如:

sed -i -e 's/ AUTO_INCREMENT=[0-9]\+//' mydump.sql


您也可以通过该mysqldump命令通过管道传输sed的输出。

07-26 02:04