• hibernate双向一对多关联关系


    双向的多对一(一对多)关联关系:

    其实这种关联关系就是把单向的多对一和单向的一对多的关联关系的整合。

     

     

    只是说明一点:

    代码:

     

    package qau.edu.ren;

    import java.util.Date;

    import org.hibernate.Session;

    import org.hibernate.Transaction;

    import org.hibernate.cfg.Configuration;

    public class Test {

    public static void main(String[] args) {

             

             

    //               创建configuration,加载配置文件;

             

              Configuration con = new Configuration().configure();

             

    //               创建Session;

             

              Session session = con.buildSessionFactory().openSession();

             

    //               开始事务 ;

             

              Transaction tr = session.beginTransaction();

             

    //               实例化对象;

             

              Customer customer = new Customer();

             

              customer.setName("AAAAAA");

             

              Order o1 = new Order();

              Order o2 = new Order();

             

              o1.setName("aa");

              o1.setDate(new Date());

             

              o2.setName("bb");

              o2.setDate(new Date());

             

              o1.setCus(customer);

              o2.setCus(customer);

             

              customer.getOrders().add(o2);

              customer.getOrders().add(o1);

    //              

    //              

              session.save(customer);

              session.save(o2);

              session.save(o1);

             

    //              

    //              

             

    //               Customer cus = (Customer)session.get(Customer.class, 1);

    //              

    //               Set<Order> orders = cus.getOrders();

             

             

              tr.commit();

             

             

             

              session.close();

             

    }

    }

     

     

     

    下面是Customer的关系映射文件:

     

     

    <?xml version="1.0"?>

    <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"

    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

     

    <hibernate-mapping package="qau.edu.ren">

     

       <class name="Customer" table="t_customer">

      

         <id name="id" column="c_id">

           <generator class="native"></generator>

         </id>

        

         <property name="name" column="c_name"/>

        

         <set name="orders" table="t_order" inverse="true">

           <key column="c_id"/>   

           <one-to-many class="Order"/> 

         </set> 

       </class>

    </hibernate-mapping>

     

     

     

     

     

    上面的inverse属性用于控制反转,没有设置这个属性的时候,不管是怎样的save顺序,都会出现update,这是因为这是双向的关联关系,关联关系由双方记性维护。

     

    inverse<set>中的一个属性,当他的设置为true的时候,表示对方为主动方,表示关联关系由对方进行维护。

    如果没有一直坚持,也不会有质的飞跃,当生命有了限度,每个人的价值就会浮现。
  • 相关阅读:
    js 和 jquery的宽高
    client、offset、scroll
    web开发中会话跟踪的方法有哪些
    前端需要注意哪些SEO
    ES6 Set和Map数据结构
    ES6实现数组去重
    ES6 Symbol
    ES6对象的拓展
    ES6数组的拓展
    ES6函数的拓展
  • 原文地址:https://www.cnblogs.com/shiguangshuo/p/4083828.html
Copyright © 2020-2023  润新知