JPA中的主键生成策略

通过annotation(注解)来映射hibernate实体的,基于annotation的hibernate主键标识为@Id, 其生成规则由@GeneratedValue设定的.这里的@id和@GeneratedValue都是JPA的标准用法。

JPA提供的四种标准用法为TABLE,SEQUENCE,IDENTITY,AUTO。

IDENTITY:自增

主键由数据库(比如mysql)自动生成(主要是自动增长型)

前提:

  • 底层数据库必须支持自动增长(调用底层数据库的自增方式,对id自增)

用法:

    @Id//声明当前私有属性为主键
    @GeneratedValue(strategy= GenerationType.IDENTITY) //配置主键的生成策略
    @Column(name="cust_id") //指定和表中cust_id字段的映射关系
    private Long custId;
  • 会用

SEQUENCE:序列

根据底层数据库比如mysql(oracle)的序列来生成主键,条件是数据库支持序列。

  • 会用

table:jpa提供的中间表

jpa提供的一种机制,通过一张数据库表的形式完成主键自增,这张表有jpa控制

  • 理解即可

Auto:

由程序自动帮我们选择主键生成策略

  • 理解即可
    @Id  
    @GeneratedValue(strategy = GenerationType.AUTO)  
    private Long custId;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值