标签:
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());
}
}
标签:
原文地址:http://www.cnblogs.com/liang67732116/p/5843112.html