2014-01-30 12 views
0

Я разрабатываю приложение с JPA. У меня проблема, если я заполняю базу данных, прежде чем запускать приложение. Если я делаю это сначала, я не могу вставить кортеж в базу данных, используя пользовательский интерфейс моего разработанного приложения, потому что таблица уже заполнена. Например, я заполняю таблицу sql скриптом с использованием первичных ключей от 1 до 5. Почему приложение не перезагружается, чтобы вставить новый кортеж из 6? стратегия используется для создания ID являетсяПервичный ключ конфликта

@GeneratedValue(strategy=GenerationType.AUTO) 
+0

AUTO означает: выбрать наилучшую стратегию данный основной базы данных/таблицы. Посмотрите на сгенерированный SQL и сообщите нам, какую базу данных вы используете, чтобы узнать, как JPA генерирует идентификаторы. Вероятно, он использует последовательность или таблицу, а таблица sequenceor не инициализируется с правильным значением, учитывая то, что у вас уже есть в базе данных. –

+0

Я использую InnoDB. Я также попытался использовать эту команду, но она не работает. ALTER TABLE VOLO MODIFY ID_VOLO ID_VOLO decimal (38,0) AUTO_INCREMENT PRIMARY KEY; VOLO - моя таблица, а ID_VOLO мой первичный ключевой столбец – Bella

+0

говорит, что «это не работает» не помогает нам помочь вам. быть точным. Опишите, что вы сделали, что вы ожидали от результата, и чем он был. Вставьте точные и полные сообщения об ошибках. –

ответ

0

сделать свой первичный ключ идентификатор автоматического приращения, а затем использовать эту аннотацию:

@GeneratedValue(strategy=GenerationType.IDENTITY) 
+0

Я уже пробовал это, но он не работает – Bella

+0

Вы также использовали аннотацию '@ Id'? –

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