identity方式
<generator class="identity"/>
identity方式表示数据库的主键生成方式为采用数据库的主键生成机制,例如SQL Server或MySQL的自动主键生成机制。
increment方式
<generator class="increment"/>
使用increment方式时,hibernate将按照递增的方式设定主键,具体的方式是,先获取当前记录主键的最大值,然后再将该值加1作为主键。
assigned方式
<generator class="assigned"/>
主键由应用逻辑产生,实体对象再保存之前,必须显式的设置OID,主键的产生无需Hibernate的干预。
sequence方式
<generator class="sequence">
<param name="sequence">some_sequence</param>
</generator>
这种方式针对由序列方式产生主键的数据库,例如Oracle。在<generator>的子元素<param name="sequence">指定用作产生主键的序列名称。
native方式
<generator class="native"/>
native方式意味着将主键的生成机制交由Hibernate决定,Hibernate会根据配置文件中的方言(Dialect)定义,采用不同的数据库特定的主键生成方式。
UUID方式
<column name="id" sql-type="char(32)" not-null="true"/>
<generator class="uuid.hex"/>
用128-bit的UUID算法产生32位的16进制的字符串类型的标识符