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;
发布了254 篇原创文章 · 获赞 70 · 访问量 18万+

猜你喜欢

转载自blog.csdn.net/zhizhengguan/article/details/104006529
今日推荐