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

Hibernate-----多对一关联映射(映射文件方式)

时间:2014-11-26 18:55:10      阅读:244      评论:0      收藏:0      [点我收藏+]

标签:hibernate   多对一关联映射   映射文件   orm   框架   

N-1关联映射原理:在多的一端加入一个外键,指向一的一端

 

Many(维护端:User

<?xml version="1.0"encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="org.app.model">
    <class name="User"table="t_user">
       <id name="id">
           <generator class="increment"/>
       </id>
 
       <property name="name"/>
 
        <!-- 维护关系:在多的一端添加外键(group_id)指向一的一端-->
       <many-to-one name="group"column="group_id" cascade="save-update"/>
       <!-- 级联是对象之间的连锁操作,它只影响增、删、改 -->
    </class>
</hibernate-mapping>
To

One(非维护段:Group

<?xml version="1.0"encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="org.app.model">
    <class name="Group" table="t_group">
       <id name="id">
           <generator class="increment"/>
       </id>
       <property name="name"/>
    </class>
</hibernate-mapping>

public void testManyToOne() {
       Session session= null;
       try {
           session= HibernateUtils.getSession();
           session.beginTransaction();
           Group group = new Group();
           group.setName("group1");
           // 若不先保存group对象;在清理缓存时会抛出TransientObjectException异常;因为Persistent状态的对象不能引用Transient状态的对象
           // 若user中使用了级联特性,可不用保存group;因为保存User的时候,Hibernate会保存User维护的关联对象Group
           session.save(group);
 
           User user = new User();
           user.setName("user1");
           user.setGroup(group);
           session.save(user);
 
           session.getTransaction().commit();
       } catch (Exception e) {
           e.printStackTrace();
           session.getTransaction().rollback();
       } finally {
           HibernateUtils.closeSession(session);
       }
    }


Hibernate-----多对一关联映射(映射文件方式)

标签:hibernate   多对一关联映射   映射文件   orm   框架   

原文地址:http://blog.csdn.net/hekewangzi/article/details/41519229

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