Hibernate主键自增长increment

increment

由Hibernate从数据库中取出主键的最大值(每个session只取1次),以该值为基础,每次增量为1,在内存中生成主键,不依赖于底层的数据库,因此可以跨数据库。

1
2
3
<id name="id" column="id">
<generator class="increment" />
</id>

Hibernate调用org.hibernate.id.IncrementGenerator类里面的generate()方法,使用select max(idColumnName) from tableName语句获取主键最大值。

以上为 XML 配置自增长,而使用 注解 的方式就需要一下的步骤实现:

1
2
3
4
5
@GenericGenerator(name = "generator", strategy = "increment")
@GeneratedValue(generator = "generator")
@Id
@Column
private Integer id;