我试图在Oracle JPA中使用已定义的序列生成,以及GenerationType.AUTO,如下所示:
MY_GEN_NAME
运行hibernate验证后会抛出错误:
架构验证:缺少序列[hibernate_sequence]
我猜,它忽略了我的GenerationType.SEQUENCE
并尝试使用该全局序列进行id生成。
当我切换到SequenceHiLoGenerator
时,它会使用GenerationType.AUTO
并且工作正常。
为什么会发生这种情况,是否可以使{{1}}使用给定的Oracle序列(切换到其他数据库的可能性)?
答案 0 :(得分:1)
AUTO
对JPA提供商说,"选择你想要的",它不会使用"生成器"在这种情况下的属性。
如果您想使用SEQUENCE,请将策略设置为SEQUENCE
!这样它将使用您定义的序列定义
答案 1 :(得分:1)
尽管hibernate-sequence-on-oracle-generatedvaluestrategy-generationtype-auto表明这会起作用,但对于某些版本的Hibernate来说它似乎已被破坏,请参阅HHH-10656。
编辑:在5.2.0中断,在5.2.8中未破坏。