带生成器的Oracle JPA GenerationType.AUTO要求" hibernate_sequence"

时间:2016-09-09 14:35:50

标签: java oracle hibernate jpa

我试图在Oracle JPA中使用已定义的序列生成,以及GenerationType.AUTO,如下所示:

MY_GEN_NAME

运行hibernate验证后会抛出错误:

  

架构验证:缺少序列[hibernate_sequence]

我猜,它忽略了我的GenerationType.SEQUENCE并尝试使用该全局序列进行id生成。

当我切换到SequenceHiLoGenerator时,它会使用GenerationType.AUTO并且工作正常。

为什么会发生这种情况,是否可以使{{1}}使用给定的Oracle序列(切换到其他数据库的可能性)?

2 个答案:

答案 0 :(得分:1)

AUTO对JPA提供商说,"选择你想要的",它不会使用"生成器"在这种情况下的属性。

如果您想使用SEQUENCE,请将策略设置为SEQUENCE!这样它将使用您定义的序列定义

答案 1 :(得分:1)

尽管hibernate-sequence-on-oracle-generatedvaluestrategy-generationtype-auto表明这会起作用,但对于某些版本的Hibernate来说它似乎已被破坏,请参阅HHH-10656

编辑:在5.2.0中断,在5.2.8中未破坏。