JPA @Id 和 @GeneratedValue 注解详解

@Id:
@Id 标注用于声明一个实体类的属性映射为数据库的主键列。该属性通常置于属性声明语句之前,可与声明语句同行,也可写在单独行上。
@Id标注也可置于属性的getter方法之前。

@GeneratedValue:
@GeneratedValue 用于标注主键的生成策略,通过strategy 属性指定。默认情况下,JPA 自动选择一个最适合底层数据库的主键生成策略:SqlServer对应identity,MySQL 对应 auto increment。
在javax.persistence.GenerationType中定义了以下几种可供选择的策略:
–IDENTITY:采用数据库ID自增长的方式来自增主键字段,Oracle 不支持这种方式;
–AUTO: JPA自动选择合适的策略,是默认选项;
–SEQUENCE:通过序列产生主键,通过@SequenceGenerator 注解指定序列名,MySql不支持这种方式
–TABLE:通过表产生主键,框架借由表模拟序列产生主键,使用该策略可以使应用更易于数据库移植。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 2017年8月21日 我原本只想简单记录一下springboot中应用Jpa的简单操作。不想由于hibernate...
    行者N阅读 6,528评论 0 23
  • 作者:钟昕灵,叩丁狼教育高级讲师。原创文章,转载请注明出处。 JPA简介 JPA是Java Persistence...
    叩丁狼教育阅读 4,347评论 1 5
  • 1.spring boot+jpa项目的构建 请参考spring boot+jpa简单实现 2.@Id+@Gene...
    dancer4code阅读 12,328评论 1 3
  • 首先了解几个概念 Spring Data:一个用于简化数据库访问,并支持云服务的开源框架,根据JPA规范封装的一套...
    CoderZS阅读 13,465评论 1 20
  • 五月的第三个周日,所谓“父亲节”,,实际上,许多人连这日子是咋回事也没弄明白,只是跟着追风。 1972年美国总统才...
    張蕾馥阅读 203评论 0 0