web-dev-qa-db-fra.com

La table 'DBNAME.hibernate_sequence' n'existe pas

J'ai une application SpringBoot 2.0.1.RELEASE utilisant les données de printemps/jpa

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

Mais lorsque je fais une mise à jour dans la base de données Amazon Aurora, j'ai l'erreur suivante:

2018-04-13 09:20 [pool-1-thread-1] ERREUR o.h.id.enhanced.TableStructure.execute (148) - impossible de lire une valeur hi com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: la table 'elbar.hibernate_sequence' n'existe pas chez Sun.reflect.NativeConstructorAccessorImpl.newInstance0 (méthode native)

J'ai ceci dans l'entité que je veux sauver

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

Je voudrais aussi éviter tout inconvénient dans la base de données pour récupérer l'ID.

4
en Peris

Avec la génération GenerationType.AUTO, hibernate recherchera la table hibernate_sequence par défaut. Changez donc la génération en IDENTITY comme ci-dessous:

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

Juste au cas où vous migriez depuis une version de démarrage de prévisualisations:

définir ce qui suit dans application.yml empêchera hibernate de rechercher des entrées hibernate_sequence.

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

C'était la valeur par défaut dans Boot 1.x

4
Laures

Ajoutez la configuration suivante dans votre application.yml:

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

Ou ceci si vous utilisez application.properties

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

0
Neikat