hibernate学习笔记第三天(2)

此文章为自己书写,在Word上做的笔记,然后拷贝到这上边的,无任何抄袭。另外若是程序有任何问题可以评论,也可私信我。

Hibernate的多对多操作

多对多的映射配置

以用户和角色为例
第一步:创建实体类,用户和角色
第二步:让两个实体类之间互相表示
(1)一个用户里面表示所有角色用set集合
(2)一个角色有多个用户,用set集合
第三步:配置映射关系
(1)基本配置
(2)配置多对多的关系
在用户里面表示所有的角色,使用set标签
这里写图片描述
在角色里面表示所有的用户,使用set标签
这里写图片描述
第四步:在核心配置文件中引入映射文件
这里写图片描述
第五步:测试(执行工具类,看表是否创建)
这里写图片描述
这里写图片描述

多对多的级联操作

多对多的级联保存
根据用户保存角色
第一步:在用户配置文件中set标签进行配置,cascade值save-update
这里写图片描述
第二步:写代码实现
(1)创建用户和角色的对象,把角色放到用户中去,最终保存用户就可以了
//添加两个用户,为每个用户添加两个角色
//1.创建对象
User user1 = new User();
user1.setUser_name(“lucy”);
user1.setUser_password(“123”);

        User user2 = new User();
        user2.setUser_name("mary");
        user2.setUser_password("456");

        Role role1 = new Role();
        role1.setRole_name("总经理");
        role1.setRole_memo("总经理是");

        Role role2 = new Role();
        role2.setRole_name("秘书");
        role2.setRole_memo("秘书是");

        Role role3 = new Role();
        role3.setRole_name("司机");
        role3.setRole_memo("司机是");

        //2.建立关系,把角色放到用户中
        // user1 -- role1/role2
        // user2 -- role2/role3
        user1.getRoles().add(role1);
        user1.getRoles().add(role2);
        user2.getRoles().add(role2);
        user2.getRoles().add(role3);

        session.save(user1);
        session.save(user2);

多对多的级联删除
第一步:在set标签中进行配置,cascade值为delete
这里写图片描述
第二步:删除用户(一般不用,这样的话把三个表所有相关的属性全部删除,user与role与第三张表的相关的id全部删除)
这里写图片描述

维护第三张表

1.用户与角色是多对多的关系,维护他们的关系是通过第三张表来进行维护
2.让某个用户拥有某个角色
第一步:根据id查询出用户和角色
第二步:把角色放到用户里
(1)把角色对象放到用户的set集合内
这里写图片描述
3.让某个用户没有某个角色
第一步:根据id查询出用户和角色
第二步:从用户里面把角色去掉
(1)在set集合内把角色移除
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值