📅  最后修改于: 2021-01-02 13:35:57             🧑  作者: Mango
所有生成器类都实现org.hibernate.id.IdentifierGenerator接口。应用程序程序员可以通过实现IdentifierGenerator接口来创建自己的生成器类。 Hibernate框架提供了许多内置的生成器类:
如果没有
....
.....
仅当没有其他进程向该表中插入数据时,它才会生成唯一ID。它生成short , int或long类型的标识符。如果一个表包含一个标识符,则应用程序将考虑其最大值,否则应用程序将认为第一个生成的标识符为1。对于每个属性值,休眠模式将标识符增加1。语法:
....
.....
它使用数据库的顺序。如果没有定义序列,它将自动创建一个序列,例如在Oracle数据库中,它将创建一个名为HIBERNATE_SEQUENCE的序列。对于Oracle,DB2,SAP DB,Postgre SQL或McKoi,它使用序列,但在内部数据库中使用生成器。句法:
.....
.....
要定义自己的序列,请使用generator的param子元素。
.....
your_sequence_name
.....
它使用上下限算法生成short,int和long类型的id。句法:
.....
.....
根据数据库供应商的不同,它使用标识,序列或hilo。句法:
.....
.....
在Sybase,My SQL,MS SQL Server,DB2和HypersonicSQL中使用它来支持id列。返回的ID类型为short,int或long。数据库负责生成唯一标识符。
它对指定的序列名称使用高低算法。返回的ID类型为short,int或long。
它使用128位UUID算法生成ID。返回的ID为String类型,在网络中是唯一的(因为使用IP)。 UUID以十六进制数字表示,长度为32。
它使用字符串类型的数据库生成的GUID。它适用于MS SQL Server和MySQL。
它使用数据库触发器返回的主键。
它使用另一个关联对象的ID,通常与
它使用特殊的序列生成策略。仅Oracle 10g驱动程序支持。