在Hibernate中。对主键的管理是一个很重要事情。
Hibernate有自己独特的主键机制。主键的实现有以下几种:
1。使用Generator主键生成器。
每个主键都必须定义相应的主键生成策略,它用来为持久化类实例化生成唯一的标识。
所有的生成器都必须实现:
net.sf.hibernate.id.IdentifierGenerator接口。
除了用户可以自定义之外,Hibernate还提供了很多内置的实现
2。Hibernate内置的主键生成策略
(1)increment:主键按数值顺序递增。
(2)identity:采用数据库提供的主键生成机制。
(3)sequence:采用数据库提供的序列机制生成主键。
(4)hilo:通过高低位算法实现的主键生成机制,需要额外的数据库表保存主键生成历史状态。
(5)seqhilo:与hilo类似,只是主键历史状态保存在sequence中。
(6)uuid.hex:用一个128bit的uuid算法生成字符串类型的标识符,被编码为一个32位16进制
数字的字符串。
(7)uuid.String:被编码为一个16个字符长的任意ASCII字符组成的字符串。
(8)native:根据底层数据库的能力选择identity,sequence或hilo中的一个。
(9)assigned:手动分配一个标识符。(指定此种策略时不能使用saveOrUpdate()方法,必须明确
指出是save还是update
(10)foreign:外部引用,使用另外一个相关联的对象的标识符。和<one-to-one>联合一起使用。
3。复合主键的实现:
假设现在有一张数据表:
本文介绍Hibernate框架中的主键管理机制,包括内置的主键生成策略、复合主键的实现方式及配置示例。
185

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



