我已经研究了我遇到的这个问题,并尝试从相应的 Account Hibernate 类中的 Set 中删除 AccountBalance,然后保存 Account 对象,但数据库没有更新。
我想使用 Hibernate 从数据库中删除 AccountBalance 记录。一个 Account 可以有多个 AccountBalance,但一个 AccountBalance 只能有一个 Account。
我正在使用一个存储库类,它扩展CrudRepository
为将 Hibernate 实例保存到数据库中相应的表中。我已经尝试delete()
在要删除的 AccountBalance 上专门使用该功能,但这不起作用。
这是我在 AccountBalance 中已有的 Hibernate 代码:
@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);
}
关于我做错了什么的任何想法?