2016-02-05 193 views
5

我迁移与Hibernate 3运行的应用程序到休眠5迁移Hibernate 3至5:关系hibernate_sequence不存在

我有一个奇怪的错误:

ERROR: relation hibernate_sequence does not exist

我们使用*.hbm.xml映射文件和一切工作正常,直到我改变了休眠版本。我的意思是我们有一个非常简单的ID列和DB序列生成器的直接映射,但仍然无法选择正确的配置。

<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> 

回答

10

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

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

到:

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

一切正常。

1

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

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