码迷,mamicode.com
首页 > Web开发 > 详细

hibernate双向一对多关联关系

时间:2014-11-08 19:34:34      阅读:200      评论:0      收藏:0      [点我收藏+]

标签:style   http   io   ar   os   java   sp   for   strong   

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

 

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

 

 

只是说明一点:

代码:

 

 

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

hibernate双向一对多关联关系

标签:style   http   io   ar   os   java   sp   for   strong   

原文地址:http://www.cnblogs.com/shiguangshuo/p/4083828.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!