首页 > 网站 > WEB开发 > 正文

hibernate一对多、多对多级联保存与级联删除与修改外键

2024-04-27 15:11:20
字体:
来源:转载
供稿:网友

1、一对多复杂写法级联保存

//创建一个公司对象,为公司对象添加员工

        GongsiEntity gongsi=new GongsiEntity();        gongsi.setGname("百度");        YuangongEntity yuangong=new YuangongEntity();        yuangong.setYname("001");        //建立公司与员工的关系        //1、把员工放进公司的set集合里面        gongsi.getYuangongSet().add(yuangong);        //2、把公司放到员工里面        yuangong.setGongsiEntity(gongsi);        //保存到数据库        session.save(gongsi);

        session.save(yuangong);

2、一对多简单写法级联保存(常用)

(1)在公司映射文件中进行配置在set标签中添加属性cascade,属性值为save-update(2)创建公司和员工对象,只需要把员工放到公司里面就可以了,最终只需要保存公司就可以了

3、一对多级联删除

(1)删除某个公司对象,把里面的员工也删除(2)具体实现1、在公司映射文件set标签的cascade的属性值添加delete2、在代码中直接删除GongsiEntity gongsi=(GongsiEntity)session.get(GongsiEntity.class,1);        session.delete(gongsi);

4、一对多修改外键

(1)需要获取员工对象和公司对象,重新设置关系

//根据id查询        YuangongEntity yuangong=(YuangongEntity)session.get(YuangongEntity.class,3);        GongsiEntity guge=(GongsiEntity)session.get(GongsiEntity.class,2);        //把员工放到其他公司        guge.getYuangongSet().add(yuangong);        yuangong.setGongsiEntity(guge);

5、多对多级联保存

根据订单保存商品1、在订单配置文件中set标签进行配置cascade值save_update2、代码实现创建订单和商品对象,把商品放到订单中,保存订单即可

6、多对多级联删除(了解,不常用)

与上面类似,需要在set标签配置cascade属性值为delete,然后直接代码查询删除

7、多对多维护第三张表(关系表)

订单和商品多对多关系,维护关系通过第三张表1、让某个订单有某个商品(1)根据id查询出订单和商品(2)把商品放到订单的set集合里面2、让某个订单没有某个商品(1)根据id查询出订单和商品(2)把商品从订单的set集合中移除


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表