使用spring data jpa 更新某个表的时候报错:A collection with cascade=“all-delete-orphan” was no longer referenced by the XXXX
原因是关联问题。
@Entity
@Table(name = "CUSTOMER")
@Data
public class Customer {
@OneToMany(cascade = CascadeType.ALL, orphanRemoval = true, fetch = FetchType.EAGER)
@JoinColumn(name = "CUS_ID")
@Fetch(FetchMode.SUBSELECT)
private List<Files> files;
.....
}
而我更新的时候是这样写的
...
Customer customer = customerRepository.findByIdCardNumber("XXXXX");
File files = new File();
files.setUrl("XXXXX");
customer.setFiles(files);
customerRepository.save(customer);
.....
应该这样:
Customer customer = customerRepository.findByIdCardNumber("XXXXX");
File files = new File();
files.setUrl("XXXXX");
customer.getFiles().clear();
customer.getFiles().addAll(files);
customerRepository.save(customer);