0

我的休眠配置如下:

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 突然不起作用?

4

2 回答 2

1

您可能遇到了这个 MySQL 错误(7 年前打开!!!)。如果您阅读评论,有人发布了sed用于修复 MySQL 转储的解决方法,例如:

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

mysqldump您还可以通过该sed命令管道输出。

于 2013-09-26T13:50:15.623 回答
-1

您是否已将该列声明为自动增量?

http://dev.mysql.com/doc/refman/5.0/en/example-auto-increment.html

如果未将该列声明为自动增量,请点击以下链接:

ALTER 表 - 在 MySQL 中添加 AUTOINCREMENT

于 2013-09-26T13:04:24.487 回答