У меня есть две таблицы, которые связаны с отношением один к одному:
public class Person {
// some other fields
@OneToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
@JoinColumn(name = "image_id")
private FileInfoModel image;
}
public class FileInfoModel {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@NotBlank
private String name;
@NotNull
@Column(name = "size_in_bytes")
private Long size;
// some other fields
}
Когда я пытался удалить изображение с хранилищем: repository.deleteById (file.getId () ); Я получаю следующую ошибку:
обновление или удаление в таблице "file_info" нарушает ограничение внешнего ключа "fk_image" для таблицы "person".
Есть ли способ установить нулевое значение поля таблицы Person в таблице при удалении FileInfo из хранилища? Я знаю, что могу установить person.setImage (null) и сохранить его, а затем удалить файл, но я думаю, что может быть более простой способ с меньшим количеством шагов.