持久化类的编写规则&主键生成策略

本文介绍了Hibernate框架中的持久化类概念,强调持久化类的编写规则,如提供无参构造器,使用私有属性及get/set方法等。主键分为自然主键和代理主键,建议在开发中优先选择代理主键以遵循开闭原则。此外,文章还详细讲解了主键的生成策略,包括increment、identity、sequence、uuid、native和assigned等选项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

什么是持久化类

  • 持久化:将内存中的一个对象持久化到数据库中的过程。Hibernate框架就是用来进行持久化的框架。
  • 持久化类:一个java类与数据库建立了映射关系
    • 持久化类 = java类 + 映射文件

持久化类的编写规则:

  • 对持久化类提供一个无参的构造方法
    • hibernate的底层需要通过反射生成实例。
  • 属性要私有,对私有属性提供get和set方法
    • Hibernate中获取,设置值
  • 对持久化类要提供一个唯一表示的OID与数据库主键对应
  • 持久化类中属性尽量使用包装类型。
  • 持久化类不能用final修饰

主键分类

自然主键
  • 主键本身就是表中的一个字段(实体中一个具体的属性)。
    • 创建一个人员表,人员会有一个身份证号(唯一的不可重复的,使用身份证做主键,这种主键就叫做自然主键。)
代理主键
  • 本事不是表中一个必须的字段(不是实体中一个具体的属性)
    • 创建一个人员表,没有使用身份证号,而是使用一个与此表不相关的ID字段。这种主键称之为代理主键
开发中尽量使用代理主键
  • 一旦自然主键参与到业务逻辑中,后期有可能需要修改源代码
  • 好的程序设计满足OCP,对程序的扩展是open的,对源码的修改是close的

主键的生成策略

  • increment
    • hibernate中提供的自增长的机制,适用于int,short,long类型的主键。在单线程中使用
  • identity
    • 数据库底层的增长机制,适用与int,short,long (Myslq,MSSQL)
  • sequence
    • 采用的是序列的方式。适用与int,short,long (Oracle)
  • uuid
    • hibernate中随机的生成字符串的主键
  • native
    • 本地策略,在identity和sequence中切换
  • assigned
    • hibernate放弃外键管理,需要通过手动添加。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值