hibernate基础------》关系映射---》many2one和one2many的区别

        many2one和one2many其实没什么差别,最大的不同就是站在不同的角度而已
    例如:one2many视角:一棵苹果树有很多苹果,这是一对多关系(站在树的角度上看)
          many2one视角:许多苹果在一棵苹果树上,这是多对一关系(站在苹果的角度上看)
          
    代码分析需求
    1.    PO类
        苹果树
        private int id;
        private String name;
        private Set<fruit> fruit=new HashSet<fruit>();
        
        配置
        <set name="fruit" >
            <key column="t_f_id"></key>
            <one-to-many class="fruit"/>
        </set>
        
        苹果
        private int id;
        private String name;
        private Tree tree=new Tree();
        
        配置
        <many-to-one name="tree" class="Tree" column="t_f_id" cascade="all"></many-to-one>
        
    2.    运行类(one2many和many2one在po上并没有什么不同,他们的区别表现在运行类上)
    
        fruit f1 = new fruit();
        f1.setName("苹果1");
        fruit f2 = new fruit();
        f2.setName("苹果2");
        
        Tree t = new Tree();
        t.setName("苹果树");
        

        //注意此处是高能区:这里也是多对一重要体现,f2.setTree(t);苹果包含苹果树,这就是站在苹果视角上看(多包涵一),反过来如果一对多:t.getfruit.add(f1);苹果树包含苹果,那么就是一包含多;其实实际就是谁是控制类而已---》多为控制类则多对一,一为控制类则一对多,控制类的表现就在于集合为  控制类.add(被控制类)   非集合  控制类.set被控制类(被控制类值);

        f2.setTree(t);
        f1.setTree(t);
    
        session.save(f1);
        session.save(f2);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值