这两个表之间存在多对一关系:
银行帐户(有货币)
货币
当我删除银行帐户时,休眠模式会尝试从货币表中删除货币。那显然是没有道理的。我的关系如下:
银行账户:
@Entity
@Table(name = "bank_account")
@EntityListeners(AuditingEntityListener.class)
public class BankAccount {
//...other fields ommited
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "currency_id", nullable = true)
private Currency currency;
//...
}
货币:
@Entity
@Table(name = "currency")
@EntityListeners(AuditingEntityListener.class)
public class Currency implements Serializable {
@Id
@Size(min = 2, max = 3)
@NotNull
private String id;
@Column(name = "name")
@NotNull
private String name;
@Column(name = "is_default")
private boolean isDefault;
//...ommited
}
当我在BankAccount中使用delete时,hibernate尝试删除伴随的货币,但由于其他表显然在引用它们,因此它无法这样做。
我对Hibernate非常了解,这里出了什么问题?
谢谢
最佳答案
要回答我自己的问题:Eclipse高速缓存或某种形式的高速缓存导致了该错误。重新启动Eclipse和我的PC后,它可以正常工作……仅浪费了1个小时。