采用数据库提供的 sequence 机制生成主键。
支持 sequence 的数据库有:Oracle、DB2、SAP DB、PostgerSQL、McKoi。
MySQL 不支持 sequence。
hibernate 生成主键时查找 sequence 并赋给主键值,主键值由数据库生成,Hibernate 不负责维护,使用时必须先创建一个 sequence,如果不指定 sequence 名称则使用 Hibernate 默认的 sequence,名称为 hibernate_sequence
,前提是要在数据库中创建该 sequence。
特点:只能在支持序列的数据库中使用。
示例:
<id name="id" type="java.lang.String">
<column name="ID" />
<generator class="sequence">
<!-- 指定sequence名称 -->
<param name="sequence">hibernate_sequence</param>
</generator>
</id>