我现在有一张用户表
CREATE TABLE `UserInfo`
(
userId
INT NOT NULL AUTO_INCREMENT,
USERNAME
VARCHAr(30) NOT NULL,
PASSWORD VARCHAr(30) NOT
NULL,
PID INT NULL ,
GID
INT NULL ,
PRIMARY KEY (userId)
)ENGINE=InnoDB
DEFAULT CHARSET=gb2312;
一张角色表
CREATE TABLE `ROLE`
(
ROLEID INT NOT NULL AUTO_INCREMENT,
ROLENAME
VARCHAr(20) NOT NULL,
PRIMARY KEY(ROLEID)
)ENGINE=InnoDB
DEFAULT CHARSET=gb2312;
还有一张员工角色连接表,里面分别是用户的ID和角色的ID
CREATE TABLE
`ConUserRole`
(
ConUserRoleID INT NOT NULL
AUTO_INCREMENT,
userId INT NOT NULL,
roleId INT NOT NULL,
PRIMARY KEY (ConUserRoleID)
)ENGINE=InnoDB DEFAULT CHARSET=gb2312;
现在我新建一个用户,在页面列出所有的角色名称,注册时可以选择多个角色,那么就需要在上面中间表中插入一行数据,但是现在中间表插不了
我的hibernate.xml文件是这样的
UserInfo.hbm.xml文件中存储的是角色中间表的set集合
<set name="conuserroles" inverse="true" table="conuserrole"
lazy="false">
<key>
<column name="userId"
not-null="true" />
</key>
<many-to-many
class="com.act.dao.pojo.Role" column="roleId" />
</set>
角色Role.hbm.xml
<set name="conuserroles" inverse="true"
table="conuserrole"
lazy="false">
<key>
<column
name="roleId" not-null="true" />
</key>
<many-to-many
class="com.act.dao.pojo.Userinfo"
column="userId" />
</set>
员工角色连接表 Conuserrole.hbm.xml
<many-to-one name="userinfo"
class="com.act.dao.pojo.Userinfo"
fetch="select">
<column
name="userId" not-null="true" />
</many-to-one>
<many-to-one
name="role" class="com.act.dao.pojo.Role"
fetch="select">
<column
name="roleId" not-null="true" />
</many-to-one>
三者之间的关联关系是这样的,
我该加什么属性或设置什么地方才能实现我在添加员工的时候也能在员工角色连接表中增加一行数据?
hibernate级联的问题,大家帮忙解决哈~~
答案:1 悬赏:70 手机版
解决时间 2021-07-29 20:00
- 提问者网友:浮克旳回音
- 2021-07-29 12:34
最佳答案
- 五星知识达人网友:鸠书
- 2021-07-29 13:18
利用hibernate annotation的扩展标记@Cascade(CascadeType.SAVE_UPDATE)
一个个加试哈看...
cascade="save-update"
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯