写测试类,向数据库保存一条数据时,出现了“ Table 'XXX.hibernate_sequence' doesn't exist”的错误
经查,是由于使用 @GeneratedValue 注解时,没有指定生成策略。
改为 @GenerationValue(strategy = GenerationType.IDENTITY)即可。
猜测:
GenerationType为枚举类型,包括了TABLE, SEQUENCE, IDENTITY 和 AUTO.
若没有指定,默认为AUTO,即持久化引擎自主选择前三种生成方式的其中一种。可能是选择错误。
结论:
使用@GenerationValue注解时,最好显式地指定生成策略,避免错误的发生。
参考链接:
本文介绍了一种在单元测试中向数据库插入数据时遇到的“Table 'XXX.hibernate_sequence' doesn't exist”错误,并分析了解决该问题的方法。通过正确设置@GeneratedValue注解的策略为GenerationType.IDENTITY,可以有效避免这一问题。
1735

被折叠的 条评论
为什么被折叠?



