Spring Data JPA (2) 一对多关系
标签:nbsp 映射 lin 关联 The remove 对象 jpa 有关
Spring Data JPA (2) 一对多关系
- 前言:只要有kotlin-jpa,就可以在JPA中使用data class,非常舒服
- 一对多关系是开发中最常见的多表关系
-
在JPA中,以下注解和属性对你有帮助
-
@ManyToOne
-
@OneToMany
-
targetEntity
-
mappedBy
-
cascade
- 指定级联关系,当对该表操作时,所关联的表是否也要进行操作
-
@JoinColumns
-
referencedColumnName
-
name
-
一对多关系
- 无论是一的一方还是多的一方,都可以通过 @JoinColumns 的referencedColumnName来指定外键名
-
不过,在通过一的一方维护自己外键的时候,会多出一条update语句,这条语句没有必要
- we then use property mappedBy to reflect 外键 from 多方
- 要确定的是多方映射到一方中,一方的属性名叫什么,而不是类名叫什么
- 这个属性名,就是mappedBy映射的管道
-
@Entity的映射:
- 一方通过Set来反应多方
- 多方则把一方的对象当普通属性来看
- 我们对一方的Set添加多方,或者对多方中所在的一方的类赋值,都可以维护外键
-
删除
- 在删除的时候,如果外键没有关联,则可以随便删除
-
如果外键有关联,那么在删除一方的时候:
- 会首先把多表外键置为NULL,如果外键设置了非空,则会报错
- 这个操作,是通过一表来维护外键的,如果置了一表的外键是mappedBy,那么一表将不能自主设置外键,会报错
- 解决方案:使用级联删除 cascade=CascadeType.REMOVE
Spring Data JPA (2) 一对多关系
标签:nbsp 映射 lin 关联 The remove 对象 jpa 有关
原文地址:https://www.cnblogs.com/frontend-tutorial/p/13588970.html
评论