ConstraintViolationException
произошло из-за того, что ограничение вашего первичного ключа для базы данных SQL нарушает
В SQL первичный ключ является уникальным ключом для идентификации записи, база данных будет выдавать исключение при попытке вставить дублирующее значение в первичный столбец.
который, в свою очередь, перешел в спящий режим и передается в ваш код и является причиной этого исключения.
С Springboot 1.4.3.RELEASE до 2.1.0.RELEASE Обновлена версия Hibernate с 5.0 до 5.3.
Способ, которым Hibernate интерпретирует тип генерации AUTO, изменился, начиная с версии Hibernate 5.0
Если вы используете strategy="AUTO"
, Hibernate сгенерирует таблицу с именем hibernate_sequence
, чтобы указать следующий номер для последовательности идентификаторов. Возможно, вы забыли добавить функцию автоинкремента к ПК вашего стола.
Еще один способ исправить это использовать следующие аннотации с strategy="AUTO"
@Id
@GeneratedValue(
strategy= GenerationType.AUTO,
generator="native"
)
@GenericGenerator(
name = "native",
strategy = "native"
)
private Long id;
Вы можете использовать стратегию генерации strategy="IDENTITY"
, чтобы принудительно использовать функцию автоинкремента, доступную в SQL, и избежать создания таблицы.
Пожалуйста, проверьте здесь , чтобы получить более подробную информацию