zoukankan      html  css  js  c++  java
  • 映射一对一关联

    Hibernate提供了两种一对一关联关系的方式,按照外键映射和按照主键映射.

        一对一关系映射即为关系双方都含有对方一个引用�其实在生活中一
    对一关系也很常见�比如人和身份证�学生和学号等�都是一对一的关
    系映射�一对一映射分为单向的和双向的�没种关系映射又可以分为主
    键关联映射,唯一外键关联映射。

    保存员工档案的同时分配给员工一个账号..

    在映射持久化对象中的属性时,需要注意一些问题

    Resume1.hbm.xml

    <many-to-many

      name="users1"

      class="cn.happy.entity.Users1"

      column="resuserid"

      cascade="all"  //为了

      unique="true" //表明每一个resume1对象和User1对象之间一对一的关联关系

    />

    Users1.hbm.xml

    <one-to-one name="resume1"

      class="cn.happy.entity.User"

      property-ref="users1"  //表明Resume1的user1属性建立了从User1对象到Resume1对象的关联

    />

    Test代码

    复制代码
    package cn.happy.test;
    
    import org.hibernate.Session;
    import org.hibernate.Transaction;
    import org.junit.After;
    import org.junit.Before;
    import org.junit.Test;
    
    import cn.happy.entity.Resume1;
    import cn.happy.entity.Users1;
    import cn.happy.util.HibernateUtil;
    
    public class MyTest {
        Session session;
        Transaction tx;
        @Before
        public void initDate(){
            session=HibernateUtil.getSession();
            tx=session.beginTransaction();
        }
        @After
        public void afterDate(){
            tx.commit();
            HibernateUtil.closeSession();
        }
        @Test
        public void addTest(){
            //构建档案
            Resume1 resume1 =new Resume1(3,"张三","21000302123165456");
            //构建用户,不需要提供主键,因为user2对象和resume2对象共同用一个oid
            Users1 users1 =new Users1("zhangsan","123456");
            resume1.setUsers1(users1);
            users1.setResume1(resume1);
            session.save(resume1);
        }
        @Test
        public void getoneTest(){
            Resume1 resume1=(Resume1)session.load(Resume1.class, 1);
            Users1 users1 =resume1.getUsers1();
            System.out.println("姓名:"+resume1.getResname());
            System.out.println("用户名"+users1.getUsername());
        }
    }
  • 相关阅读:
    C++面向对象笔记:继承、派生
    教你制作伪静态
    安装android环境别忘了加个环境变量sdk_home
    javascript获取asp.net后台代码的方法
    一天学会PHP(转)
    access数据库里面用sql语句随机调用一条数据
    【转】 android sdk setup时出现:HTTPS SSL error , Server:10.159.192.62
    AutoCode下载及具体使用方法
    讲故事谈.NET委托:一个C#睡前的故事
    使用activeskin控件制作VB和易语言的皮肤的视频教程
  • 原文地址:https://www.cnblogs.com/liang67732116/p/5843112.html
Copyright © 2011-2022 走看看