Ошибка спящего режима: почему Generation Type.SEQUENCE не работает с postgres10.6
Я хочу использовать пользовательские последовательности для моей базы данных postgres, но она всегда использует nextval последовательности по умолчанию "hibernate_sequence" при вставке записей в таблицу. Я использую приведенный ниже код при определении сущности.
@Id
@SequenceGenerator(name = "address_generator", sequenceName =
"address_id_seq", allocationSize = 1)
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator =
"address_generator")
private Long id;
и ниже - свойства, которые я определил в файле application.properties.
Диалект SQL делает Hibernate лучше генерирует SQL для выбранной базы данных
spring.jpa.properties.hibernate.dialect =
org.hibernate.dialect.PostgreSQLDialect
spring.jpa.database-platform=org.hibernate.dialect.PostgreSQLDialect
spring.jpa.generate-ddl=true
Hibernate ddl auto (создание, создание-удаление, проверка, обновление)
spring.jpa.hibernate.ddl-auto = update
spring.jpa.show-sql=true
Я также пробовал другие стратегии генерации, такие как GenerationType.IDENTITY,GenerationType.AUTO, и проблема та же.
Я использую весеннюю загрузочную версию как 2.1.3.RELEASE.
1 ответ
У меня такая же проблема:
@Id
@SequenceGenerator(name = "STUDENT_SEQUENCE", sequenceName = "student_id_seq", schema = "base", allocationSize = 1)
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "STUDENT_SEQUENCE")
@Column(name = "id", nullable = false)
private Long id;
Есть последовательность base.student_id_seq , но spring / jpa ее не находит. Он игнорирует аннотации @SequenceGenerator и @GeneratedValue и просто выдает мне ошибку:
отношение «hibernate_sequence» не существует
Я не знаю, забыл ли я некоторую конфигурацию для весенней загрузки с использованием аннотаций JPA, анотация @Enttity работает нормально.
Пружинный ботинок 2.5.0
"PostgreSQL 9.5.6