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)

相关推荐

  • html网页自动跳转属性指的是什么意思

    技术html网页自动跳转属性指的是什么意思这篇文章主要介绍了html网页自动跳转属性指的是什么意思,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

    攻略 2021年11月17日
  • Oracle PL/SQL编译警告PLSQL_WARNINGS的示例分析

    技术Oracle PL/SQL编译警告PLSQL_WARNINGS的示例分析小编给大家分享一下Oracle PL/SQL编译警告PLSQL_WARNINGS的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起

    攻略 2021年12月8日
  • 什么是PHP数组遍历

    技术什么是PHP数组遍历这篇文章主要讲解了“什么是PHP数组遍历”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“什么是PHP数组遍历”吧!1、什么是数组遍历其实就是访问数组

    攻略 2021年11月2日
  • 二分查询

    技术二分查询 二分查询二分查询:package com.cc;/** * @Author: cc * @Create: 2021/12/20 * 二分查询实现步骤: * 1.前提:有已排序数组A (假设

    礼包 2021年12月22日
  • 怎么理解游戏的Draw Calls

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

    攻略 2021年11月1日
  • python切片模拟LRU算法怎么实现

    技术python切片模拟LRU算法怎么实现这篇文章主要介绍“python切片模拟LRU算法怎么实现”,在日常操作中,相信很多人在python切片模拟LRU算法怎么实现问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操

    攻略 2021年12月1日