Получение Javax Hibernate ConstraintViolationException для автоматически сгенерированного идентификатора при импортировании данных в базу данных - PullRequest
0 голосов
/ 05 января 2019

У меня есть 3 строки, уже импортированные (путем import.sql в пути к классам) в моей базе данных с первичными ключами id = 1, id = 2, id = 3. Когда я пытаюсь вставить новые данные (через javax.faces), я получаю ConstraintViolationException 3 раза подряд, а затем, с 4-й попытки, новая строка вставляется с автоматически сгенерированным id = 4. Есть ли возможность избежать этих 3 ошибок и вставить данные с первой попытки с идентификатором, начиная с последнего идентификатора в таблице?

Вот мое объявление сущности:

@Entity
@Table(name = "book")
public class Book {

   @Id
   @GeneratedValue
   @Column(name = "id")
   private long id;
}

Заранее спасибо.

1 Ответ

0 голосов
/ 05 января 2019

Спасибо, крокодилко . Решил это, добавив стратегию:

@GeneratedValue(strategy=GenerationType.SEQUENCE)

и добавление этой строки после каждой вставки таблицы в сценарии import.sql:

SELECT setval([sequencename], max(id)) FROM [tablename];
...