Ошибка спящего режима: почему 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

Другие вопросы по тегам