当创建数据库中的序列时如果Generator类是Sequence

时间:2014-01-06 12:52:20

标签: hibernate

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

1 个答案:

答案 0 :(得分:0)

当您指定自己的自定义序列时,Hibernate不会为您创建序列。它将尝试使用您指定的名称查找现有序列。如果你想让Hibernate处理序列生成,那么跳过param name属性,Hibernate将为你生成序列。

如果您设置了以下hibernate属性,它将使用您的序列名称生成序列

hibernate.hbm2ddl.auto

上述属性的Hibernate文档声明如下

  

在创建SessionFactory时自动验证或将架构DDL导出到数据库。使用create-drop,当SessionFactory显式关闭时,将删除数据库模式。   例如验证|更新|创建| create-drop