我有一個具有單向一對多的用戶物體,其中包含一組角色,例如
@OneToMany(orphanRemoval = true, cascade = CascadeType.ALL, fetch = FetchType.EAGER)
@JoinColumn(name="user_ref")
private Set<Role> roles;
但是,當我從集合中洗掉角色并保留用戶時,Hibernate 堅持執行預洗掉:
update role set user_ref=null where user_ref=?
由于資料庫外鍵約束,它變得很糟糕。即使我在角色中執行此操作,此行為仍然存在
@Column(name = "user_ref", nullable = false)
private int userId;
(同樣適用于可更新=假)
指標贊賞,尼克
uj5u.com熱心網友回復:
當您將單向一對多映射時,角色物體中不應有 userId。
此外,還有更好的方法來映射用戶和角色之間的關系,這將防止需要這些更新陳述句,例如雙向一對多或單向多對一。一對多
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/513207.html
標籤:休眠jpa
上一篇:如何處理“java.lang.IllegalArgumentException:rawPassword不能為空”
