spirng data JPA教程(二)基本注解的使用
上篇文章讲解了spring boot JPA的基本的增删改查操作,这次我们主要讲下实体类中基本注解的使用方法
spring boot JAP 中定义实体类时,用到的基本注解包括:
@Entity、@Table、@Id、@IdClass、@GeneratedValue、@Basic、@Transient、@Column、@Temporal、@Enumerated、@Lob
下面首先依次解释下每个注解的意思
再通过实例,练习下各个注解的使用
项目地址
1.基本注解
@Entity
应用于实体类,表明该实体类被JPA管理,将映射到指定的数据库表
@Table
应用于实体类,通过name
属性指定对应该实体类对应数据库中的表名
@Id
被@Id标记的属性对应数据库表的主键,一个实体类里面必须有一个.
@GerneratedValue
于@Id一同使用,定义主键的生成策略,通过strategy
属性指定。
JPA提供的生成策略一共有4个值:
- AUTO — JPA自动选择合适的策略,是默认选项
- IDENTITY — 采用数据库ID自增长的方式生成主键值,一般用于MySQL数据库,Oracle不支持这种方式;
- SEQUENCE — 通过序列产生主键,通过@SequenceGenerator注解指定序列名,MySql不支持这种方式;
- TABLE — 通过表产生主键,会生成一张表模拟序列产生主键,该策略通用性强易于数据库的移植,但是效率低
@Basic
应用于实体类属性,表明该字段是要映射到数据库表,@Entity标注的实体类,所有属性默认为@Basic,@Baisc有两个属性:
fetch
:属性的读取策略,有EAGER
和LAZY
两种取值&