2016-02-05 197 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") 
})