• 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的时候,表示对方为主动方,表示关联关系由对方进行维护。

    如果没有一直坚持,也不会有质的飞跃,当生命有了限度,每个人的价值就会浮现。
  • 相关阅读:
    防火墙iptables 设置
    CentOS 6.5系统中安装配置MySQL数据库
    判断服务是否开启,应用是否安装,并安装应用
    判断是移动端还是PC端
    二维码的生成细节和原理
    onclick 常用手册
    PHP json_encode函数中需要注意的地方
    利用PHP SOAP扩展实现简单Web Services
    Symfony2学习笔记之事件分配器
    听 Fabien Potencier 谈Symfony2 之 《What is Symfony2 ?》
  • 原文地址:https://www.cnblogs.com/shiguangshuo/p/4083828.html
Copyright © 2020-2023  润新知