我正在将运行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>
答案 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")
})