• 映射一对一关联


    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());
        }
    }
  • 相关阅读:
    将ObservableCollection(Of T) 数据 绑定到 Canvas
    StylusNodeJS下构建更富表现力/动态/健壮的CSS
    string引用类型
    c#之预处理器指令
    c#继承与构造函数
    c#构造函数
    c#之扩展方法
    c#之结构
    继承与重写
    dedict: 很有新意的图形化英汉字典
  • 原文地址:https://www.cnblogs.com/liang67732116/p/5843112.html
Copyright © 2020-2023  润新知