1. 程式人生 > >Hibernate註解---主鍵生成策略

Hibernate註解---主鍵生成策略

hibernate註解(annoation)使用id主鍵生成主要要使用到以下幾個註解: @Id,@GeneratedValue,@GenericGenerator. ,@GeneratedValue的作用是JPA的預設實現自定義主鍵生成策略,@GenericGenerator是hibernate在JPA的基礎上增強。

自定義主鍵生成策略,由@GenericGenerator實現。hibernate在JPA的基礎上進行了擴充套件,可以用一下方式引入hibernate獨有的主鍵生成策略,就是通過@GenericGenerator加入的。

比如說,JPA標準用法

1 2 @Id @GeneratedValue(GenerationType.AUTO)

就可以用hibernate特有以下用法來實現

1 2 3 @GeneratedValue(strategy = GenerationType.AUTO) @GenericGenerator(name = "paymentableGenerator", strategy = "native")

使用@GeneratedValue

1、針對mysql,oracle,sqlserver資料庫可以同時使用

1 2 3 @Id @GeneratedValue(strategy = GenerationType.AUTO) @GenericGenerator(name = "paymentableGenerator", strategy = "native")

name屬性指定生成器名稱。

strategy屬性指定具體生成器的類名。

parameters得到strategy指定的具體生成器所用到的引數。

2、配合使用@GenericGenerator 不單獨使用

對於這些hibernate主鍵生成策略和各自的具體生成器之間的關係,在org.hibernate.id.factory.internal.DefaultIdentifierGeneratorFactory中指定了:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 //Constructs a new DefaultIdentifierGeneratorFactory. publicDefaultIdentifierGeneratorFactory() { register("uuid2", UUIDGenerator.class); register("guid", GUIDGenerator.class);        register("uuid", UUIDHexGenerator.class);         register("uuid.hex"