Hibernate多對多中間表數據更新問題


最近在做oa系統:角色(Role)和權限(Privilege) 是多對多關系,實體類關系映射采用注解方式

 

//角色類中映射權限關系
@ManyToMany
public Set<Privilege> getPrivileges() { return privileges; }
//權限類中映射角色關系
@ManyToMany(mappedBy="privileges") public Set<Role> getRoles() { return roles; }
//部分更新功能代碼:1.設置角色中的權限屬性;2.更新到數據庫
role.setPrivileges(new HashSet<Privilege>(privilegeList)); roleService.update(role);

這種配置下中間表會更新,但是如果mappedBy放在角色類中,再更新角色的話,中間表則不會更新,后台也不會報錯。

簡單說明,因為在權限類中使用了mappedBy指向了角色對象中的privileges,這樣的意思就是只能通過角色操作來做中間表(role_privilege)維護工作。

如果mappedBy放在角色類中指向權限對象中的roles,則通過角色來做維護的時候,中間表是不會做任何數據修改工作的,只能通過權限維護操作中間表(privilege_role)。

注:不知道為何Hibernate會有這個限制。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM