最近在工作中使用springside,里面用到了hibernate的多对多
一开始我在配置department(部门表)和menu(栏目表)的时候,这样写的。
Department实体类中的getMenus上写的joinColumn是menu_id,inverseJoinColumns写的是department_id
我的页面是根据所选部门查找出对应的栏目权限从而打勾,我数据库中间表默认把部门A的栏目全选了,可是出来的结果却令我大跌眼睛。
最后经过我的检查,才发现,spring是把department的id当成了menu的id,在中间表查询了id为1的menu所对应的department,所以才会出现这种现象,只需要把位置换以下即可。
所以joinColumns是主操作表的中间表列,而inverseJoinColumns是副操作表的中间表列。