it-roy-ru.com

Таблица 'DBNAME.hibernate_sequence' не существует

У меня есть приложение SpringBoot 2.0.1.RELEASE с использованием Spring Data/JPA

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>

Но когда я делаю обновление в базе данных Amazon Aurora, я получаю эту ошибку:

2018-04-13 09:20 [pool-1-thread-1] ОШИБКА o.h.id.enhanced.TableStructure.execute (148) - не удалось прочитать значение hi com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: таблица 'elbar.hibernate_sequence' не существует в Sun.reflect.NativeConstructorAccessorImpl.newInstance0 (собственный метод)

У меня есть это в сущности, которую я хочу сохранить

@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;

Я хотел бы также избежать каких-либо недостатков в БД для получения идентификатора.

4
en Peris

При генерации GenerationType.AUTO hibernate будет искать таблицу hibernate_sequence по умолчанию, поэтому измените генерацию на IDENTITY, как показано ниже:

 @Id
 @GeneratedValue(strategy = GenerationType.IDENTITY)
 private Long id;
14
Springer F

На случай, если вы перейдете с загрузочной версии предварительного просмотра:

установка следующего в вашем application.yml будет препятствовать тому, чтобы hibernate искал записи hibernate_sequence.

spring.jpa.hibernate.use-new-id-generator-mappings

Это было по умолчанию в Boot 1.x

4
Laures

Добавьте следующий конфиг в ваш application.yml:

spring: jpa: hibernate: use-new-id-generator-mappings: false

Или это если вы используете application.properties

spring.jpa.hibernate.use-new-id-generator-mappings= false

0
Neikat