Hibernate的映射文件的generator标签的native属性的值是什么?“分别”是什么意思?
1)已分配
主键是在没有Hibernate参与的情况下由外部程序生成的。
2)希洛
hi/lo算法实现的主键生成机制需要额外的数据库表来存储主键生成的历史状态。
3)塞基洛
类似于hilo,hi/lo算法实现的主键生成机制只是主键的历史状态按顺序保存,适用于支持顺序的数据库,比如Oracle。
4)增量
主键按数字顺序增加。这个方法的实现机制是在当前的应用实例中维护一个变量来保存当前的最大值,然后在每次需要生成主键时,在这个值上加1作为主键。
5)身份
采用数据库提供的主键生成机制。比如DB2、SQL Server和MySQL中的主键生成机制。
6)顺序
数据库提供的序列机制用于生成主键。如口腔中的序列。
7)本地
Hibernate根据底层数据库使用identity、hilo和sequence之一作为主键生成方法。
8) uuid.hex
基于128位唯一值生成算法,Hibernate生成一个16位数值(编码为长度为32的字符串)作为主键。
9) uuid.string
类似于uuid.hex,只是生成的主键没有编码(长度16)。某些数据库可能会出现问题(比如PostgreSQL)。
10)国外
使用外部表中的字段作为主键。Oracle数据库一般采用增量自动增长或顺序序列。