★native
<
id
name
="id"
type
="integer"
>
< column name ="id" >
</ column >
< generator class ="native" ></ generator >
</ id >
< column name ="id" >
</ column >
< generator class ="native" ></ generator >
</ id >
1.根据不同的底层数据库,采用不同的主键生成方式。如MySQL使用Idetify方式,Oracle使用Sequence方式
2.由于hibernate会根据底层数据库采用不同的映射方式,因此便于程序移植。
3.项目中如果用到多个数据库时,可以使用native方式
★uuid
<
id
name
="id"
type
="string"
>
< column name ="id" >
</ column >
< generator class ="uuid" ></ generator >
</ id >
< column name ="id" >
</ column >
< generator class ="uuid" ></ generator >
</ id >
1.能保证数据库主键值的唯一性
2.生成的主键值占用比较多的存储空间
★foreign
<
id
name
="id"
type
="Integer"
>
< column name ="id" >
</ column >
< generator class ="foreign" >
< param name ="property" > student </ param >
</ generator >
</ id >
< column name ="id" >
</ column >
< generator class ="foreign" >
< param name ="property" > student </ param >
</ generator >
</ id >
适合一对一关系
★guid
一种特殊的算法。支持SQL Server,MySQL. 在使用SQL Server时,表定义中的字段的类型指定为uniqueidentifier