[spring boot] Table 'XXX.hibernate_sequence' doesn't exist
  凌峰   7/25/20 11:30:35 AM
在springboot中编写testcase,在向数据库保存一条数据时,出现了“ Table 'XXX.hibernate_sequence' doesn't exist”的错误

Springboot中编写testcase,程序执行数据库写入一条数据时,出现了“ Table 'XXX.hibernate_sequence' doesn't exist”的错误

经过排查,是由于使用@GeneratedValue注解时,没有指定生成策略。

 /**商户id,主键*/
    @Id
    @GeneratedValue()
    @Column(name="id",nullable=false)
    private  Integer id;

改为@GenerationValue(strategy = GenerationType.IDENTITY)即可。

猜测:

GenerationType为枚举类型,包括了TABLE, SEQUENCE, IDENTITYAUTO.

若没有指定,默认为AUTO,即持久化引擎自主选择前三种生成方式的其中一种。可能是选择错误。

结论:

  • 使用@GenerationValue注解时,最好显式地指定生成策略,避免错误的发生。

参考

版权声明: 本文为智客工坊「凌峰」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。