使用Hibernate的主键生成策略
JPA标准注解只支持AUTO、IDENTITY、SEQUENCE、TABLE。Hibernate支持更多的主键生成策略。使用@GenericGenerator注解,定义生成主键生成器
@GenericGenerator,属性:
name:设置主键生成器的名称,名称被@GeneratedValue的generator属性引用
strategy:设置该主键生成器的主键生成策略
strategy属性指定如下常用的主键生成策略:
1、increment:为long、shor或int类型主键生成唯一标识
2、identity:返回标识属性long、shor或int
3、sequence:(Oracle、DB2)提供Sequence支持的数据表中适用。返回标识属性是long、short或int类型
4、hilo:使用一个高/低位算法高效地生成long、short或int类型的标识符
5、seqhilo:使用一个高/低位算法高效地生成long、short或int类型的标识符。主键历史状态保存在Sequence中
6、uuid:用一个128位的UUID算法生成字符串类型的标识符
7、guid:在SQL Server和MySQL中使用数据库生成的GUID字符串
8、native:根据底层数据库能力选择identity、sequence或hilo中一个
9、assigned:让应用程序在save()之前为对象分配一个标识符
10、select:通过数据库触发器选择某个