将Hibernate 3迁移到5:关系hibernate_sequence不存在

时间:2016-02-05 17:42:51

标签: java hibernate

我正在将运行Hibernate 3的应用程序迁移到Hibernate 5。

我有一个奇怪的错误:

  

错误:关系hibernate_sequence不存在

我们正在使用*.hbm.xml映射文件,一切正常,直到我更改了Hibernate版本。我的意思是我们有一个非常简单的ID列和DB序列生成器的映射,但仍然没有Hibernate能够选择正确的配置。

<hibernate-mapping>
    <class name="com.boyan.MyClass" table="my_class">
       <id name="id" type="long">
            <column name="id" />
            <generator class="sequence">
               <param name="sequence">my_class_seq</param>
            </generator>
        </id>
...
    </class>
</hibernate-mapping>

2 个答案:

答案 0 :(得分:10)

我开始深入挖掘Hibernate代码,发现SequenceGenerator已弃用,新版本使用SequenceStyleGenerator。当我注意到在新版本中告诉哪个序列名称从sequence更改为sequence_name时,我感到非常困惑。最后当我改变时:

<param name="sequence">my_class_seq</param>

为:

<param name="sequence_name">my_class_seq</param>
一切顺利。

答案 1 :(得分:1)

我碰到了同样的问题,我正在使用注释。解决方案是已接受的答案JPA GenerationType.AUTO not considering column with auto increment。如果使用以下注释,则应使用。

@GenericGenerator(name = "my_seq", strategy = "native", parameters = {
    @Parameter(name = "sequence_name", value = "mydb_seq")
})