映射一对一关联

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());
    }
}

 

转载于:https://www.cnblogs.com/liang67732116/p/5843112.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值