Spring Data学习笔记(二)

92 阅读1分钟

一、多表关联操作

通过注解实现多表关联操作,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)