首页 > 代码库 > 映射一对一关联
映射一对一关联
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()); }}
映射一对一关联
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。