我在hibernate映射文件中使用自定义序列。现在的问题是,如果数据库支持生成器类“序列”,那么将在数据库中创建序列。
示例声明如下:
<class name="Employer" table="employers">
<id name="id">
<generator class="sequence">
<param name="sequence">employer_id_seq</param>
</generator>
</id>
<property name="name"/>
</class>
答案 0 :(得分:0)
当您指定自己的自定义序列时,Hibernate不会为您创建序列。它将尝试使用您指定的名称查找现有序列。如果你想让Hibernate处理序列生成,那么跳过param name属性,Hibernate将为你生成序列。
如果您设置了以下hibernate属性,它将使用您的序列名称生成序列
hibernate.hbm2ddl.auto
上述属性的Hibernate文档声明如下
在创建SessionFactory时自动验证或将架构DDL导出到数据库。使用create-drop,当SessionFactory显式关闭时,将删除数据库模式。 例如验证|更新|创建| create-drop