ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
级操操作是指:操作实体 A 的同时,也操作该实体关联的其他实体。 `@OneToOne`、`@OneToMany`、`@ManyToOne`、`@ManyToMany`都有一个属性`cascade`来控制级联操作。 ```java public @interface OneToMany { //CascadeType.MERGE 级联更新 //CascadeType.PERSIST 级联新增 //CascadeType.REFRESH 级联刷新 //CascadeType.REMOVE 级联删除 //级联脱管/游离操作 //如果要删除一个实体,但是它有外键无法删除,这时就需要这个级联权限了, //它会撤销所有相关的外键关联。 //CascadeType.DETACH //CascadeType.ALL 所有级联操作 CascadeType[] cascade() default {}; } ``` <br/> **1. 规定级联操作类型** ```java public class Person implements Serializable { @OneToMany(mappedBy = "person", cascade = CascadeType.PERSIST) private List<BankCard> bankCardList; } ``` **2. 测试** ```java @Test public void test1() { Person person = new Person(); person.setUsername("zhangsan"); BankCard bankCard1 = new BankCard(); bankCard1.setPerson(person); bankCard1.setCardNumber("1234-5678-9100-8956"); BankCard bankCard2 = new BankCard(); bankCard2.setPerson(person); bankCard2.setCardNumber("7856-2341-4567-8906"); person.setBankCardList(Arrays.asList(bankCard1, bankCard2)); //虽然代码这里只新增了Person,但是因为设置了级联操作,也会新增BankCard personRepository.save(person); } ```