Я уже изучил эту проблему и пытался удалить AccountBalance из набора в соответствующем классе Hibernate, а затем сохранить объект Account, но база данных не обновляется.
Я хочу удалить запись AccountBalance из базы данных, используя Hibernate. У учетной записи может быть много учетных записей, но у учетной записи может быть только одна учетная запись.
Я использую класс репозитория, который расширяет CrudRepository
для сохранения экземпляров Hibernate в соответствующих таблицах в базе данных. Я попытался использовать функцию delete()
специально для AccountBalance, который я хочу удалить, но это не работает.
Вот код Hibernate, который у меня уже есть в AccountBalance:
@Entity
@Table(name = "account_balance")
public class AccountBalance {
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "acc_id", nullable = false)
private Account account;
И Аккаунт:
@Entity
@Table(name = "account")
public final class Account {
@OneToMany(fetch = FetchType.EAGER, mappedBy = "account", cascade = CascadeType.ALL)
private Set<AccountBalance> balances = new HashSet<>();
Я уже пробовал эту функцию безрезультатно.
public void deleteAccountBalance(Account account, String balanceCode) {
for (Iterator<AccountBalance> iterator = account.getBalances().iterator(); iterator.hasNext();) {
AccountBalance accBal = iterator.next();
if (accBal.getBalanceCode().equals(balanceCode)) {
iterator.remove();
}
}
accountRepository.save(account);
}
Есть идеи, что я делаю не так?