使用注解风格学习Hibernate和JPA的4种主键生成策略

        主键是关系数据库中的一个基本概念,它用来保证记录的唯一性。简单来说,就是同一张数据库表中,不允许存在多条相同主键的记录。主键生成策略,就是当向数据库表中插入记录的时候,这个记录的主键该如何生成。绝大部分情况下,主键都是没有业务含义的,所以开发者不会、也不需要,显示地设置实体对象的主键值。但是对于数据库来说,主键是必须的,显然这个责任,落在了hibernate这个持久层框架上。对于初学hibernate的人来说,往往会被一堆的主键生成策略弄晕,本文介绍下一些容易混淆的概念,希望能帮助大家了解hibernate主键生成策略。


       Hibernate内置了很多主键生成策略,这些策略可以分为两类:一类是JPA标准的主键生成策略,一类是Hibernate框架特有的主键生成策略。JPA标准策略有4种:auto策略、table策略、sequence策略、identity策略;余下的都是hibernate自己的策略,包括我们常用的native、uuid、assigned、sequence等。

1.JPA和Hibernate的区别

       JPA全称Java Persistence API,是sun公司针对ORM技术提出的技术规范,用来将POJO按照标准的方式进行持久化,很类似于JDBC规范。Hibernate最早是以ORM框架形式出现的,用来解决JDBC存在的问题。随着JPA标准的发展和完善,hibernate到后来也开始支持JPA规范,并且能够完全兼容JPA规范。也就说,hibernate是JPA标准的一个实现,还在此基础上增加了一些自己特有的功能。这就是我们常说的:JPA是hibernate的一个子集,hibernate是JPA的超集。

2.JPA的4种策略介绍

  • AUTO策略
        auto策略是JPA默认的策略,在hibernate的代码GenerationType.AUTO进行定义。使用 AUTO 策略就是将主键生成的策略交给持久化引擎 (persistence   engine) 来决定,由它自己从 Table 策略,Sequence 策略和 Identity策略三种策略中选择最合适的。不同的持久化引擎 、不同的数
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值