Hibernate提供的几种内置标识符生成器
|
标识符生成器 |
简 介 |
|
increment |
适用于代理主键。由Hibernate以自增的方式生成,增量为1 |
|
identity |
适用于代理主键。由底层数据库生成,前提是底层数据库支持自增字段类型 |
续表
|
标识符生成器 |
简 介 |
|
sequence |
适用于代理主键。Hibernate根据底层数据库的序列生成,前提条件是底层数据库支持序列 |
|
hilo |
适用于代理主键。Hibernate根据high/low算法生成,Hibernate把特定表的字段作为“heigh”值,在默认的情况下选用hibernate_unique_key表的next_hi字段 |
|
native |
适用于代理主键。根据底层数据库对自动生成标识符的支持能力,选择identity、sequence、hilo |
|
uuid.hex |
适用于代理主键。Hibernate采用128位的UUID(Universal Unique Identitication)算法生成,UUID算法能够在网络环境生成惟一的字符串标识符,不推荐使用,因为字符串型要比整型占用更多的数据库空间 |
|
assigned |
适用于自然主键。由Java应用程序负责生成,此时不能把setId()方法声明为private类型,不推荐使用 |
<property>子元素用于设定类的属性和表字段的映射,该元素主要包括name、column、type和not-null属性。
● name属性
name属性用于指定持久化类的属性名。
● column属性
column属性用于指定与类属性映射的表的字段名。
● type属性
type属性用于指定Hibernate映射类型。Hibernate映射类型是Java类型与SQL类型的桥梁,三者之间的对应关系如表2.3所示。
Java类型、Hibernate映射类型、SQL类型3者之间的对应关系
|
Java属性类型 |
Hibernate映射类型 |
SQL类型 |
|
String |
string |
varchar() |
|
String |
text |
text |
|
int |
int |
int |
|
char |
character |
char() |
|
boolean |
boolean |
bit |
|
byte[] |
binary |
blob |
|
java.sql.Date |
date |
date |
|
java.sql.Timestamp |
timestamp |
timestamp |
本文介绍了Hibernate提供的多种内置标识符生成器,包括increment、identity、sequence等,并详细解释了每种生成器的特点及适用场景。此外,还介绍了<property>元素的主要属性及其用途。
1644

被折叠的 条评论
为什么被折叠?



