joinColumns和inverseJoinColumns的用法

最近在工作中使用springside,里面用到了hibernate的多对多

一开始我在配置department(部门表)和menu(栏目表)的时候,这样写的。

joinColumns和inverseJoinColumns的用法_第1张图片

Department实体类中的getMenus上写的joinColumn是menu_id,inverseJoinColumns写的是department_id

我的页面是根据所选部门查找出对应的栏目权限从而打勾,我数据库中间表默认把部门A的栏目全选了,可是出来的结果却令我大跌眼睛。

joinColumns和inverseJoinColumns的用法_第2张图片

最后经过我的检查,才发现,spring是把department的id当成了menu的id,在中间表查询了id为1的menu所对应的department,所以才会出现这种现象,只需要把位置换以下即可。

所以joinColumns是主操作表的中间表列,而inverseJoinColumns是副操作表的中间表列。

joinColumns和inverseJoinColumns的用法_第3张图片

joinColumns和inverseJoinColumns的用法_第4张图片


你可能感兴趣的:(Work_)