#java #spring #hibernate #sequence
#java #spring #гибернация #последовательность
Вопрос:
Итак, я использую базу данных PostgreSQL в моем проекте Spring MVC, и я создал таблицу с последовательностью для генерации первичного ключа. И у меня проблема с тем, что hibernate получает следующее значение для вставки строк. Вот как выглядит моя сущность:
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "employee_s")
@SequenceGenerator(name = "employee_s", sequenceName = "employee_s", initialValue = 1, allocationSize = 1)
@Column(name = "id_pk")
private Long id;
И я получаю ошибку при вставке таких данных:
org.postgresql.util.PSQLException: ERROR: Column "next_val" does not exist
Ну, этот столбец не существует в последовательности, но почему даже hibernate ищет этот столбец?
Но когда я изменил порядок генерации, это сработало:
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id_pk")
private Long id;
Как я могу исправить это, чтобы использовать разбросанность последовательности, или я должен просто придерживаться IDENTITY, потому что это работает? PostgreSQL использует стратегии, поэтому я хотел их опробовать