问题描述
在为实体类的ID指定序列时老是失败,并自动提示序列不存在,但是在数据库中检查后发现序列存在。
系统报错的日志:

2019-08-01 17:12:52.620 WARN 18440 --- [ main] o.h.engine.jdbc.spi.SqlExceptionHelper : SQL Error: 2289, SQLState: 42000
注解里面的配置

原因
- 通过对比系统日志,发现系统查询的序列名为staff_category_seq 而不是注解里面声明的StaffCategory_seq。框架会将驼峰命名自动转化为下划线命名,因此找不到更名后的序列也很正常了。
- JPA自动生成的POJO中,在@SequenceGenerator注解里声明的sequenceName驼峰命名会转化为下划线风格的命名。
解决方法
将大小写都改为小写就好啦,注意不要驼峰命名和下划线的命名风格混用!

网友评论