2013-09-26 3 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

Вы объявили столбец как «Автоматическое увеличение»?

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

Если не объявлен столбец как автоматическое приращение, пожалуйста, следуйте приведенным ниже ссылке:

ALTER table - adding AUTOINCREMENT in MySQL

+0

Да, у меня есть. CREATE TABLE 'statuspaatelling' ( ' statusOppdatert' datetime DEFAULT NULL, 'statusPaaTellingID' int (11) NOT NULL AUTO_INCREMENT. Я работал раньше, просто перестал работать днем ​​назад. – Jinxen

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 после импорта данных? –

Смежные вопросы