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)

相关推荐

  • 如何理解IDEA 的项目配置和Web部署

    技术如何理解IDEA 的项目配置和Web部署这篇文章将为大家详细讲解有关如何理解IDEA 的项目配置和Web部署,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。作者:Dul

    攻略 2021年11月18日
  • HBase默认配置是什么

    技术HBase默认配置是什么小编给大家分享一下HBase默认配置是什么,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!hbase.rootdir

    攻略 2021年12月9日
  • spark调优汇总(spark调优最佳配置)

    技术如何理解spark调优中的高层通用调优如何理解spark调优中的高层通用调优,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。一,并行度集群

    攻略 2021年12月17日
  • 如何判断您是否需要台湾服务器

    技术如何判断您是否需要台湾服务器您如何真正知道您的网站是否需要租用台湾服务器?出现以下三种情况就可以考虑将业务迁移到台湾地区的服务器了1. 客户访问您的网站时加载速度太慢。 网站速度很重要。如果您的网站加载时间超过3秒,

    礼包 2021年10月19日
  • 如何深入解析Java 8 默认方法和多继承

    技术如何深入解析Java 8 默认方法和多继承本篇文章给大家分享的是有关如何深入解析Java 8 默认方法和多继承,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看

    攻略 2021年10月29日
  • 皮鞋上的油污怎么办,皮鞋上有了油点该怎样去除掉

    技术皮鞋上的油污怎么办,皮鞋上有了油点该怎样去除掉皮鞋干裂牛奶擦 喝剩的牛奶或有些放置了几日的牛奶皮鞋上的油污怎么办,不要倒掉,用它擦皮鞋或其它皮革制品岢以防止皮质干裂。要想把皮鞋擦得很亮,可在鞋油里滴上几嘀清水,旧皮鞋

    生活 2021年10月23日