hibernate多对多关系中的关联表的外键必须为其他表的主键吗?

时间:2021-12-03 13:38:19
hibernate多对多关系中的关联表的外键必须为其他表的主键吗?
比如
USER表 【ID(主键) USERCODE(建立唯一索引) USERNAME】
ROLE表 【ROLECODE(主键)    ROLENAME】

USER_ROLE   【USERCODE (外键)  ROLECODE(外键)】

现在用hibernate来自动维护USER_ROLE表,有问题吗?

4 个解决方案

#1


引用楼主 ufonaughty 的回复:
hibernate多对多关系中的关联表的外键必须为其他表的主键吗?
比如
USER表 【ID(主键) USERCODE(建立唯一索引) USERNAME】
ROLE表 【ROLECODE(主键) ROLENAME】

USER_ROLE 【USERCODE (外键) ROLECODE(外键)】

现在用hibernate来自动维护USER_ROLE表,有问题吗?


补充:USER_ROLE 【ID(主键) USERCODE (外键) ROLECODE(外键)】

#2


你这种方式不能用多对多,来映射。因为user_role已经有独立的主键了。

多对多的中间关联表,只有user_id和role_id两个字段,且这两个字段为联合主键。

你的这种方式和双向对中间表的一对多。
即user->user_role为一对多
role->user_role为一对多

#3


引用 2 楼 fly_m 的回复:
多对多的中间关联表,只有user_id和role_id两个字段,且这两个字段为联合主键。

有这个规定吗。不这么做会怎样

#4


善言:兄台还是不要hibernate了,误国,误家,误社会

#1


引用楼主 ufonaughty 的回复:
hibernate多对多关系中的关联表的外键必须为其他表的主键吗?
比如
USER表 【ID(主键) USERCODE(建立唯一索引) USERNAME】
ROLE表 【ROLECODE(主键) ROLENAME】

USER_ROLE 【USERCODE (外键) ROLECODE(外键)】

现在用hibernate来自动维护USER_ROLE表,有问题吗?


补充:USER_ROLE 【ID(主键) USERCODE (外键) ROLECODE(外键)】

#2


你这种方式不能用多对多,来映射。因为user_role已经有独立的主键了。

多对多的中间关联表,只有user_id和role_id两个字段,且这两个字段为联合主键。

你的这种方式和双向对中间表的一对多。
即user->user_role为一对多
role->user_role为一对多

#3


引用 2 楼 fly_m 的回复:
多对多的中间关联表,只有user_id和role_id两个字段,且这两个字段为联合主键。

有这个规定吗。不这么做会怎样

#4


善言:兄台还是不要hibernate了,误国,误家,误社会