ghb5371548 2009-10-12 18:09 采纳率: 0%
浏览 199
已采纳

hibernate级联的问题,大家帮忙解决哈~~

我现在有一张用户表
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集合
lazy="false">




角色Role.hbm.xml
lazy="false">



column="userId" />

员工角色连接表 Conuserrole.hbm.xml
fetch="select">


fetch="select">

三者之间的关联关系是这样的,
我该加什么属性或设置什么地方才能实现我在添加员工的时候也能在员工角色连接表中增加一行数据?

[b]问题补充:[/b]
麻烦你告诉我第二种方法该怎么配置映射文件呢? 谢谢了!!!

  • 写回答

3条回答 默认 最新

  • 大雄学编程 2009-10-13 10:23
    关注

    解决的方法好像很多,我会这样去做

    UserInfo类和Role类中都加入
    [code="java"]Set conuserrole=new HashSet(0)[/code]
    作为属性和Conuserrole双向关联,
    Conuserrole也要加入UserInfo,Role这两个类作为属性。
    这样UserInfo和Role跟Conuserrole都是一对多的关系,所以映射就要修改了,在UserInfo和Role这两个映射文件中是
    [code="java"] inverse="true" lazy="false">



    [/code]
    在Conuserrole映射文件中加入
    cascade="save-update">
    跟员工添加角色就直接用Conuserrole类就可以了,或则在UserInfo加一方法
    [code="java"] public void addAcct(Conuserrole con){
    conuserrole.add(con);
    con.setUsr(this);
    }[/code]
    也可以哦

    还一中方法就是把表改了,ConUserRole表取掉ConUserRoleID,用userId , roleId做联合主键,也不要ConUserRole实体了哦

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 无线电能传输系统MATLAB仿真问题
  • ¥50 如何用脚本实现输入法的热键设置
  • ¥20 我想使用一些网络协议或者部分协议也行,主要想实现类似于traceroute的一定步长内的路由拓扑功能
  • ¥30 深度学习,前后端连接
  • ¥15 孟德尔随机化结果不一致
  • ¥15 apm2.8飞控罗盘bad health,加速度计校准失败
  • ¥15 求解O-S方程的特征值问题给出边界层布拉休斯平行流的中性曲线
  • ¥15 谁有desed数据集呀
  • ¥20 手写数字识别运行c仿真时,程序报错错误代码sim211-100
  • ¥15 关于#hadoop#的问题