一、多表关联操作
通过注解实现多表关联操作,Spring Data JPA和Hibernate的多表关联是一致的 使用多表关联注解后,Spring Data JPA会自动的添加外键约束
@OneToOne 设置一对一关联
@OneToMany 一对多关系
@ManyToOne 多对一关系
@JoinColumn 设置外键(name指定外键列名,可以在1的一方声明,也可以在多的一方声明 )
1.1 一对一
一对一关联可以是单向的,也可以是双向的
@OneToOne
- cascade属性:设置什么样的操作会执行关联操作
- ALL // 所有
- PERSIST // 插入
- MERGE // 修改
- REMOVE // 删除
- fetch属性:控制懒加载,只有用到的时候再查
- LAZY // 懒加载
- EAGER // 立即加载
- orphanRemoval:当外键列修改为null或其他数据,则删除对应的关联表的记录
- optional:限制关联对象是否可以为null
- mappedBy:双向关联中,指定外键维护方(放弃另一方的外键约束)
1.2 一对多/多对一
OneToMany
- 默认是懒加载
ManyToOne
- 在插入多的一方的数据,更适合多对一关联
- 根据一的一方,查询多的一方的数据,更适合一对多关联
二、乐观锁和审计
@Version
@CreatedBy
@CreatedDate
@LastModifiedBy
@LastModifiedDate
@Temporal // 存储的时间类型(DATE\TIME\TIMESTAMP)