gpt4 book ai didi

java - 表 'acme_ms.hibernate_sequence' 不存在

转载 作者:行者123 更新时间:2023-12-01 00:35:31 24 4
gpt4 key购买 nike

我们正在尝试将我们的微服务迁移到 Spring Boot 2,目前,我们正在使用 Spring Boot 1.5.6.RELEASE

在迁移过程中,我们发现我们的微服务部分损坏,在日志文件中我们发现了以下错误:

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'acme_ms.hibernate_sequence' doesn't exist

目前我们的应用程序中只存在一个域类:

@Getter
@Setter
@ToString
@Entity
@Table(name = "acme_ms_card_details")
public class CardDetails {

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

我们发现问题与GeneratedValue策略类型有关,我们尝试将策略更改为GenerationType.IDENTITY,错误消失了。

那么,我们现在的问题是:为什么使用 Spring boot 1.5 GenerationType.AUTO 工作得很好,但是在迁移到 Spring boot 2 之后,GenerationType.AUTO 根本不起作用。

什么发生了重大变化?

注意:作为数据库,我们使用的是 MySQL。

最佳答案

Spring Boot 1.5.6 使用 Hibernate 5.0.12.Final 而 Spring Boot 2 使用 Hibernate 5.2.12.Final 并且新的 Hibernate 版本有一个改变,它打破了 strategy = GenerationType.AUTO

您需要将以下属性 hibernate.id.new_generator_mappings 添加到 true 以恢复向后兼容性。

hibernate 5 sequencegenerator not giving the right value

关于java - 表 'acme_ms.hibernate_sequence' 不存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51973994/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com