首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Hibernate生成一个长id值,而不是UUID

Hibernate是一个Java持久化框架,用于将Java对象映射到关系型数据库中。在Hibernate中,可以使用不同的策略来生成唯一的标识符(ID)值,其中包括生成长ID值而不是UUID。

长ID值是指一个较长的数字或字符串作为唯一标识符。相比于UUID(通用唯一标识符),长ID值更容易理解和处理。下面是长ID值的一些特点和优势:

  1. 可读性:长ID值通常是由数字或字符串组成,更容易阅读和理解。这对于开发人员和维护人员来说是非常重要的,因为他们可以直接从ID值中获取一些信息。
  2. 唯一性:长ID值仍然需要保证唯一性,以确保在数据库中不会出现重复的标识符。可以使用不同的算法和策略来生成长ID值,例如基于时间戳、基于序列号等。
  3. 性能:相比于UUID,长ID值在性能方面可能更有优势。UUID是一个128位的标识符,存储和处理起来可能会更加复杂和耗费资源。而长ID值通常是较短的数字或字符串,更容易处理和索引。

在Hibernate中,可以使用不同的生成策略来生成长ID值。例如,可以使用数据库的自增长字段、序列、UUID等。具体选择哪种策略取决于应用程序的需求和数据库的支持。

对于应用场景,长ID值适用于需要可读性和较短标识符的情况。例如,订单号、用户编号、产品编号等可以使用长ID值来表示,方便用户和开发人员进行识别和操作。

腾讯云提供了多种与Hibernate集成的产品和服务,用于支持云原生应用的开发和部署。具体推荐的产品和产品介绍链接地址可以参考腾讯云的官方文档或咨询腾讯云的技术支持团队。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Hibternate框架笔记

Hibernate在保存对象时,生成一个UUID字符串作为主键,保证了唯一性,但其并无任何业务逻辑意义...9、guid GUID:Globally Unique Identifier全球唯一标识符,也称作 UUID,是一个128位的数字,用16进制表示。...= 2) 13、小结 1、为了保证对象标识符的唯一性与不可变性,应该让Hibernate来为主键赋值,不是程序。...2、Hibernate中唯一一种最简单通用的主键生成器就是uuid。虽然是个32位难读的字符串,但是它没有跨数据库的问题,将来切换数据库极其简单方便,推荐使用!...6、还有一些方法未列出来,例如uuid.hex,sequence-identity等,这些方法不是很常用,且已被其他方法代替,如uuid.hex,官方文档里建议不使用,直接使用uuid方法。

1.8K60

Hibernate的核心对象关系映射

中自增长是以序列方法实现                  increment:自增长,一般不用(会有并发访问的问题,一般在服务器集群环境使用会存在问题)                  assigned:指定主键生成策略为手动指定主键的...                 uuid:指定uuid随机生成全球唯一的                      foreign:(外键的使用,one-to-one的时候使用)         ...2.1.2:多列作为主键映射 (1)如果找不到合适的列作为主键,除了用id列,我们一般使用联合主键,即多列的作为一个主键,从而保证记录的唯一性。...increment:了解,自增长,会有并发访问的问题,一般在服务器集群环境使用会存在问题;                    assigned指定主键生成策略为手动指定主键的                    ...uuid:指定uuid随机生成的序列号,唯一的,为主键,uuid为string类型的                    foreign:外键的方式,one-to-one方式;

1.9K60

理解JPA注解@GeneratedValue

一、JPA通用策略生成器 通过annotation来映射hibernate实体的,基于annotation的hibernate主键标识为@Id, 其生成规则由@GeneratedValue设定的.这里的...sequenceName属性表示生成策略用到的数据库序列名称。 initialValue表示主键初识,默认为0。...@Id @GeneratedValue(strategy = GenerationType.AUTO) 二、hibernate主键策略生成hibernate提供多种主键生成策略,有点是类似于...采用identity(自增主键生成机制),native就是将主键的生成工作交由数据库完成,hibernate不管 uuid: 采用128位的uuid算法生成主键,uuid被编码为一个32位16进制数字的字符串...increment: 插入数据的时候hibernate会给主键添加一个自增的主键,但是一个hibernate实例就维护一个计数器,所以在多个实例运行的时候不能使用这个方法。

3.2K30

碎片化 | 第四阶段-48-hibernate概述和配置-视频

eg:网站、中间件、CRM\SCRM、ERP、APP等等 7:hibernate整合ssh,复杂度大于mybatis 8:hierbnate自己生成sql语句,mybatis需要手工编写sql语句 结构...主键管理 Hibernate提供了很多内置的主键生成器,可以在添加时自动生成主键值。...1.sequence 序列 适用于Oracle数据库 2.identity 主键自动生成 适用于MySQL、SQLServer数据库 3.native 代表hibernate会自动识别当前连接数据库类型...ID进行set,默认是使用数据表的主键ID最大+1作为ID 5.uuid/hilo 采用uuid或hilo算法生成一个主键值。...uuid生成一个字符串 6.assigned 默认。在进行添加操作时,程序员需要在代码中使用setXxx()设置主键值

79860

Hibernate入门

对于以数据为中心的程序来说,它们往往只在数据库中使用存储过程来实现商业逻辑,Hibernate可能不是最好的解决方案;对于那些在基于Java的中间层应用中,它们实现面向对象的业务模型和商业逻辑的应用,Hibernate...这种方案使用了Hibernate API 的最小子集. “全面解决”的体系结构方案,将应用层从底层的JDBC/JTA API中抽象出来,Hibernate来处理这些细节。...的类(因为要使用代理来延迟实体的装载) 5:设若构建一个对象:cn.javass.h4.hello.UserModel,有四个属性:uuid,userId,name,age 在数据库中建表 设若构建一个表为....hello.UserModel" table="tbl_user"> <generator class="assigned...,打开数据库的数据表,你会看到一条<em>值</em>已经加入了。

71360

【框架】构架知识点常见操作

Hibernate主键ID生成方式 数据库中表有主键、主键的唯一性决定了数据库表中记录唯一。缓存在Session中的数据即实例都有一个唯一的ID,ID映射了数据库中主键。...此方式的实现机制为在当前应用实例中维持一个变量,以保存着当前的最大,之后每次需要生成主键的时候将此加1作为主键。...中序列”hibernate_sequence”的下一个;该作为主键值。...="native"> 6、uuid.hex: 由HibernateID列赋值,依据当前客户端机器的IP、JVM启动时间、当前时间、一个计数器生成串...HQL对关键字的大写小并不区分,但是对查询的对象就要区分大小写,因为它是面向对象的查询,所以查询的是一个对象,不是数据库的表,在sql中如果要加条件的话就是列,而在HQL里面条件就是对象的属性,而且还要给对象起别名

66340

hibernate5新特性展示

摘要: 在hibernate5中,有了一些新的变动: 新引导 API Spatial/GIS 支持 Java 8 支持 扩展 AUTO id 生成支持 命名策略分离 属性转换器支持 更好的 在hibernate5...中,有了一些新的变动: 新引导 API Spatial/GIS 支持 Java 8 支持 扩展 AUTO id 生成支持 命名策略分离 属性转换器支持 更好的 “bulk id table” 支持 事务管理...id 生成支持 JPA定义的GenerationType.AUTO属性仅支持数字类型.从5.0开始,hibernate高度扩展并支持更广泛的类型,包括内置支持数字类型(如整型(Integer)\整型...整合了hibernate-envers 5. 集合数值,映射键值 6. 现在能够有效处理null 7....改进 OSGi 支持 这始于一个不满的脆弱性hibernate-osgi测试.第一部分是一个使用了Pax Exam 和 Karaf的更好的测试启动.这会导致我们生成一个hibernate Karaf风格的文件

1.4K40

Hibernate配置文件详解-1

/entity/Customer.hbm.xml"/> 需要注意的是路径中的包名的层级关系用/不是我们习惯性的...添加where条件 id = 3。 ? 再次执行上述代码,结果如下。 ? 只查询出了id=3的记录。 persister:指定一个定制的ClassPersister。...access:Hibernate用来访问属性的策略。 generator:设置主键的生成策略。...formula:一个SQL表达式,定义了这个计算属性的。 access:Hibernate用来访问属性的策略。 lazy:延迟加载策略。 unique:表示该字段是否唯一,默认为false。...总结: 今天我们将Hibernate的配置详解做了一个梳理,基本涵盖了所有的配置方式,但是在实际开发中,并不是需要用到所有的配置,还是需要根据具体的业务需求来选择对应的配置。

1.3K20

NHibernate详解

让我们先跳过id标签,来讨论property标签。简要看一下,你将发现NHibernate所要做的工作。name属性的正是我们.Net 类的属性,column属性将是我们数据库里的字段。...内嵌的generator 标签告诉NHibernate 如何生成主键(它将恰当的为你生成主键,不管你指定何种类型,但你必须告诉它)。...在我们的例子里,我们设定为assigned,意味着我们对象将自己生成主键(毕竟User对象常常需要一个UserID)。...如果你执意要NHiberante为你生成主键,你感兴趣于设定uuid.hex和uuid.string(从文档中获取更多信息) 提示:如果你使用Visual Studio.Net 去编译的话,请将user.hbm.xml...发布者:全栈程序员栈,转载请注明出处:https://javaforall.cn/158250.html原文链接:https://javaforall.cn

60930

SpringDataA和Mybaits有什么区别,如何使用?

如果我们要写一个根据ID查对象的方法比如: findUserById(String Id) 首先这个方法的名称,阿粉起名起的还是比较标准的,如果你在使用SpringDataJPA的话,再repository...规范,Hibernate是JPA规范的具体实现,这样的好处是开发者可以面向JPA规范进行持久层的开发,底层的实现则是可以切换的。...这个参数也是有很多值的,不同的代表着不同的内容。...TABLE:使用一个特定的数据库表格来保存主键 SEQUENCE:根据底层数据库的序列来生成主键,条件是数据库支持序列。...这个要与generator一起使用,generator 指定生成主键使用的生成器(可能是orcale中自己编写的序列) IDENTITY:主键由数据库自动生成(主要是支持自动增长的数据库,如mysql

92740

阅读SSH项目之ERP

该SSH项目的gitHub地址:ERP项目地址 删除数据 实际业务中真正意义上的数据删除操作比较少见,多数情况是在数据中设置标记,通过标记的来区分该数据是否可以用,不是将数据真正的删除。...+b+"Model\" table=\"tbl_"+s+"\">"); bw.newLine(); bw.write(" <id name=\"uuid\...fd.getName().equals("uuid")){ //如果是关联关系不生成,不是关联关系(Long,Integer,Double,String)...(supplierUuid); //由于类别数据中第一个类别的所有商品已经使用完毕,没有将其删除,导致该商品类别对应的商品集合在下面的迭代过程中没有商品,抛出索引越界异常...} } gm = gmList.get(0); return "ajaxGetGm"; } Juqery未来对象 如果在生成的代码不是当前对象的

1K70
领券