Hibernate主键的示例分析

技术Hibernate主键的示例分析小编给大家分享一下Hibernate主键的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Hiber

边肖将与您分享Hibernate主键的示例分析。相信大部分人都不是很了解,所以分享这篇文章供大家参考。希望你看完这篇文章会有很多收获。我们一起来看看吧!

Hibernate主键介绍

1.Assigned

Assigned方法是程序生成的主键值,应该在save()之前指定,否则会引发异常。

特点:主键的生成值完全由用户决定,与底层数据库无关。用户需要维护主键值,并在调用session.save()之前指定主键值。

2.Hilo

Hilo使用高低位算法生成主键。高低位算法使用高值和低值,然后将算法得到的两个值拼接在一起作为数据库中的* * *主键。Hilo模式需要额外的数据库表和字段来提供高阶值来源。默认使用的表是

Hibernate_unique_key,默认字段叫做next_hi。Next_hi必须有记录,否则会出错。

特点:需要额外的数据库表支持,可以保证同一数据库中主键的* * *属性,但不能保证多个数据库之间主键的* * *属性。Hilo主键生成方式由Hibernate维护,因此Hilo模式与底层数据库无关,但hi/lo算法使用的表的值不宜手动修改,否则会造成主键重复的异常。

3.Increment

增量方法自动增加主键值以生成新的主键值,但需要底层数据库支持Sequence。Oracle、DB2等。您需要在映射文件xxx.hbm.xml中添加增量标识符的设置

特点:由Hibernate自己维护,适用于所有数据库,不适合多个进程同时更新数据库,也不适合单个进程访问数据库。不能在集群环境中使用。

4.Identity

当时,Identity支持根据底层数据库自动增长,不同的数据库使用不同的主键增长方式。

特点:与底层数据库相关,数据库需要支持Identity,比如MySQl中的auto _ increment,SQL Server中的Identity。支持的数据库包括MySql、SQL Server、DB2、Sybase和HypersonicSQL。身份不需要Hibernate和用户的介入,使用方便,但不方便在不同数据库之间移植程序。

5.Sequence

Sequence要求底层数据库支持Sequence模式,例如Oracle数据库。

特性:底层数据库需要支持序列。支持该序列的数据库包括DB2、PostgreSql、Qracle、SAPDb和其他不同数据库之间的移植程序。特别是,当从支持序列的数据库迁移到不支持序列的数据库时,需要修改配置文件。

6.Native

原生主键生成方法将根据不同的底层数据库自动选择身份、序列和Hilo主键生成方法。

特点:针对不同的底层数据库,采用不同的主键生成方法。Hibernate会根据底层数据库采用不同的映射方式,方便程序移植。如果项目中使用了多个数据库,则可以使用此方法。

7.UUID

UUID使用128位UUID算法生成主键,可以保证网络环境中主键的* * *性,也可以保证不同数据库、不同服务器中主键的* * *性。

特点;它可以保证数据库中主键的* * *属性,生成的主键占用更多的存储空间。

8.Foreign GUID

在一对一的关系中使用Foreign。GUID主键生成方法使用特殊算法保证生成主键的* * *属性,支持SQL Server和MySQL。上面介绍了Hibernate主键。

以上就是文章《Hibernate主键实例分析》的全部内容,感谢阅读!相信大家都有一定的了解,希望分享的内容对大家有所帮助。想了解更多知识,请关注行业资讯频道!

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/137017.html

(0)

相关推荐

  • ado如何调用存储过程

    技术ado如何调用存储过程小编给大家分享一下ado如何调用存储过程,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!你可以在安装ADO调用存储过程中。但它的功能没有Oracle或Microsoft那么多。而

    攻略 2021年12月4日
  • 怎么进行MongoDB和Cassandra以及HBase三种NoSQL数据库比较

    技术怎么进行MongoDB和Cassandra以及HBase三种NoSQL数据库比较本篇文章给大家分享的是有关怎么进行MongoDB和Cassandra以及HBase三种NoSQL数据库比较,小编觉得挺实用的,因此分享给

    攻略 2021年11月3日
  • Cortex-M0中断控制和系统控制,二)

    技术Cortex-M0中断控制和系统控制,二) Cortex-M0中断控制和系统控制(二)转载:https://aijishu.com/a/1060000000237975
    每一个外部中断都有一个对应的

    礼包 2021年11月30日
  • PDO连接数据库

    技术PDO连接数据库 PDO连接数据库上一篇文章为您介绍了“PHP数据库如何使用PDO连接数据库”在PHP中,为您详细地介绍了如何通过PDO连接数据库,这篇文章让您继续了解PHP中如何使用PDO执行SQ

    礼包 2021年10月28日
  • 怎样结合Jexus+Kestrel 部署asp.net core生产环境

    技术怎样结合Jexus+Kestrel 部署asp.net core生产环境本篇文章为大家展示了怎样结合Jexus+Kestrel 部署asp.net core生产环境,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过

    攻略 2021年11月19日
  • Django中的unittest应用是什么

    技术Django中的unittest应用是什么这篇文章主要讲解了“Django中的unittest应用是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Django中的

    攻略 2021年11月14日