在JPA (Java Persistence API) 中,@OneToMany
注解用于表示一个实体类(通常是一个父实体)与另一个实体类(通常是一个子实体)之间的多对一关系。当在父实体的集合属性上使用 @OneToMany
注解时,你可以指定一些额外的选项来控制这个关系的行为。
其中两个重要的选项是 cascade
和 orphanRemoval
。
-
cascade
: 这个选项用于指定哪些操作应该被级联到关联的实体上。CascadeType.ALL
意味着所有操作(如持久化、合并、删除和刷新)都应该级联到子实体上。当父实体被保存、更新或删除时,所有相关的子实体也会被相应地处理。 -
orphanRemoval
: 当这个选项被设置为true
时,如果父实体中的子实体集合不再包含某个子实体(即该子实体被从集合中移除),JPA 将自动删除这个孤立的子实体。这通常用于那些只能通过父实体访问的子实体,当你不再需要它们时,可以自动清理它们。