В проекте существуют сущности Account и Services (абстрактный). У Services есть дочерний класс Deposit. Код класса Account:
@Entity
public class Account {
private static Logger log = LogManager.getLogger(Account.class);
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
@Column
private double amount;
@Column
private AccountType type;
@Column(name = "date_start")
private Date dateStart;
@Column(name = "date_end")
private Date dateEnd;
@Column(name = "in_rate")
private short inRate;
@ManyToOne
@JoinColumn(name = "client_id")
private Client client;
...
Код класса Services:
@MappedSuperclass
abstract public class Services {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
protected long id;
@ManyToOne(cascade=CascadeType.ALL)
@JoinColumn(name = "from_acc_id")
protected Account fromAcc;
...
У Deposit в дополнение есть поле amount, но это не столь важно. При попытке удаления экземпляра Account, на которую есть ссылки из Deposit, выдаёт ошибку:
2020-03-13 13:29:51 ERROR SqlExceptionHelper:131 - ОШИБКА: UPDATE или DELETE в таблице "account" нарушает ограничение внешнего ключа "fk8qcea1frw0og19kft1ltq9kf9" таблицы "deposit"
Подробности: На ключ (id)=(1) всё ещё есть ссылки в таблице "deposit".
Как настроить каскадное удаление так, чтобы при удалении записи account записи из deposit удалялись автоматически?