★increment
<
id
name
="id"
type
="integer"
>
< column name ="id" >
</ column >
< generator class ="increment" ></ generator >
</ id >
< column name ="id" >
</ column >
< generator class ="increment" ></ generator >
</ id >
1.由hibernate本身维护,适用于所有的数据库。
2.不适合多线程并发更新数据库,适合单一进程访问数据库。不能用于群集环境
★idetify
<
id
name
="id"
type
="integer"
>
< column name ="id" >
</ column >
< generator class ="identify" ></ generator >
</ id >
< column name ="id" >
</ column >
< generator class ="identify" ></ generator >
</ id >
1.与底层数据库有关,要求数据库支持identify,如MySQL中是auto_increment,SQL Server中是Identify.支持的数据库有MySQL,SQL Server,DB2,Sybase和HypersonicSQL.
2.无需Hibernate和用户的干涉,使用较为方便,但不便于在不同的数据库之间移植程序。
★sequence
<
id
name
="id"
type
="integer"
>
< column name ="id" >
</ column >
< generator class ="sequence" >
< param name ="sequence" > mySequence </ param >
</ generator >
</ id >
< column name ="id" >
</ column >
< generator class ="sequence" >
< param name ="sequence" > mySequence </ param >
</ generator >
</ id >
1.需要底层数据库的支持序列,支持序列的数据库有DB2,PostgreSQL,Oracle,SAPDB等。
2.在不同的数据库之间移植程序,特别从支持序列的数据库移植到不支持序列的数据库时需要修改配置文件。