【问题标题】:Migrating Hibernate 3 to 5: relation hibernate_sequence does not exist将 Hibernate 3 迁移到 5:关系 hibernate_sequence 不存在
【发布时间】:2016-02-05 17:42:50
【问题描述】:

我正在将使用 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>

【问题讨论】:

    标签: java hibernate


    【解决方案1】:

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

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

    到:

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

    一切正常。

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-11-23
        • 2017-12-11
        • 1970-01-01
        • 1970-01-01
        • 2019-10-26
        • 1970-01-01
        • 2015-12-18
        • 2022-12-12
        相关资源
        最近更新 更多