Hibernate 中的生成器类2025 年 3 月 18 日 | 3 分钟阅读 <generator> 类是 id 的子元素。它用于为持久化类的对象生成唯一的标识符。Hibernate 框架中定义了许多生成器类。 所有生成器类都实现了 org.hibernate.id.IdentifierGenerator 接口。应用程序员可以通过实现 IdentifierGenerator 接口来创建自己的生成器类。Hibernate 框架提供了许多内置的生成器类
1) assigned (已分配)如果没有 <generator> 元素,这是默认的生成器策略。在这种情况下,应用程序分配 id。 例如 2) increment (递增)仅当没有其他进程将数据插入到此表中时,它才会生成唯一的 id。它生成 short、int 或 long 类型标识符。如果表包含一个标识符,则应用程序会考虑其最大值,否则应用程序会认为第一个生成的标识符是 1。对于每个属性值,hibernate 将标识符递增 1。语法 3) sequence (序列)它使用数据库的序列。 如果没有定义序列,它会自动创建一个序列,例如,在 Oracle 数据库中,它会创建一个名为 HIBERNATE_SEQUENCE 的序列。 在 Oracle、DB2、SAP DB、Postgre SQL 或 McKoi 中,它使用序列,但在 Interbase 中它使用生成器。 语法 要定义您自己的序列,请使用生成器的 param 子元素。 4) hilo (高低位)它使用高低位算法来生成 short、int 和 long 类型的 id。 语法 5) native (本地)它根据数据库供应商使用 identity、sequence 或 hilo。 语法 6) identity (标识)它用于 Sybase、My SQL、MS SQL Server、DB2 和 HypersonicSQL,以支持 id 列。 返回的 id 类型为 short、int 或 long。 由数据库负责生成唯一的标识符。 7) seqhilo (序列高低位)它在指定的序列名称上使用高低位算法。 返回的 id 类型为 short、int 或 long。 8) uuid (通用唯一识别码)它使用 128 位 UUID 算法来生成 id。 返回的 id 类型为 String,在网络中是唯一的(因为使用了 IP)。 UUID 以十六进制数字表示,长度为 32。 9) guid (全局唯一标识符)
10) select (选择)
11) foreign (外键)
12) sequence-identity (序列标识)
下一个主题Hibernate 中的方言 |
我们请求您订阅我们的新闻通讯以获取最新更新。