表 'DBNAME.hibernate_sequence' 不存在

2022-01-18 00:00:00 spring mysql java spring-boot spring-data

我有一个使用 spring data/jpa 的 SpringBoot 2.0.1.RELEASE 应用程序

I have a SpringBoot 2.0.1.RELEASE application using spring data / jpa

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

但是当我在 Amazon Aurora 数据库中进行更新时,我收到了这个错误:

But when I do an update in the Amazon Aurora DB, I got this error:

2018-04-13 09:20 [pool-1-thread-1] 错误 o.h.id.enhanced.TableStructure.execute(148) - 无法读取 hi 值com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法)中不存在表elbar.hibernate_sequence"

2018-04-13 09:20 [pool-1-thread-1] ERROR o.h.id.enhanced.TableStructure.execute(148) - could not read a hi value com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'elbar.hibernate_sequence' doesn't exist at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

我在要保存的实体中有这个

I have this in the entity I want to save

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

我也想避免在数据库中获取 ID 的任何缺点.

I would like to avoid also any drawback in the DB to fetch the ID .

推荐答案

随着生成 GenerationType.AUTO hibernate 会寻找默认的 hibernate_sequence 表,所以将生成更改为IDENTITY 如下:

With the generation GenerationType.AUTO hibernate will look for the default hibernate_sequence table , so change generation to IDENTITY as below :

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

相关文章