Hibernate 主键生成与表映射全解析
1. 主键生成策略概述
在数据库操作中,主键生成是一个关键环节。Hibernate 提供了多种主键生成策略,并且允许使用自定义生成机制。其中, generator
属性支持自定义生成策略,Hibernate 除了为四种主要策略提供命名生成器外,还提供了如 “hilo”、“uuid” 和 “guid” 等生成器。不过,使用 Hibernate 特定的主键生成器(如 hilo)可能会影响应用程序在其他 JPA 2 环境中的可移植性,但这些生成器能提供更多的灵活性和控制。
2. 主键生成策略类型
策略 | 描述 |
---|---|
AUTO | Hibernate 根据数据库对主键生成的支持来决定使用哪种生成器类型。 |
IDENTITY | 数据库负责确定和分配下一个主键。不建议使用,因为它会对事务和批处理产生影响。 |
SEQUENCE | 部分数据库支持 SEQUENCE 列类型,可参考 “使用 @SequenceGenerator 生成主键值” 部分。 |
TABLE | 这种类型使用一个单独的表来存储主键值,可参考 “使用 @TableGenerator 生成主键 |