2013-09-26 22 views
0

我有我的休眠配置如下:GeneratedValue没有得到一个独特的新价值

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

回答

1

你可能会击中this MySQL bug(开7年前!!!)。如果你读了评论,有人张贴使用sed修复MySQL的转储

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

一种解决方法,例如:你也可以管的mysqldump通过sed命令的输出。

+0

是我的转储也包括AUTO_INCREMENT = XXX。我通过使用sed命令删除了它,但它仍在创建现有值 – Jinxen

+0

在导入数据后,您是否重新启动运行Hibernate的进程? –