hibernate註解(annoation)使用id主鍵生成策略
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.
public
DefaultIdentifierGeneratorFactory() {
register(
"uuid2" ,
UUIDGenerator. class
);
register(
"guid" ,
GUIDGenerator. class
);
register(
"uuid" ,
UUIDHexGenerator. class
);
register(
|