首页 > 代码库 > Hibernate 一对一关联映射

Hibernate 一对一关联映射

package com.entity;import javax.persistence.Entity;import javax.persistence.OneToOne;@Entitypublic class Husband extends BaseEntity {	@OneToOne(mappedBy = "husband")	private Wife wife;	public Wife getWife() {		return wife;	}	public void setWife(Wife wife) {		this.wife = wife;	}	private String name;	public String getName() {		return name;	}	public void setName(String name) {		this.name = name;	}}

husband.java

package com.entity;import javax.persistence.Entity;import javax.persistence.JoinColumn;import javax.persistence.ManyToOne;@Entitypublic class Wife extends BaseEntity {	private String name;		@ManyToOne	@JoinColumn(name="husband_id",unique=true)	private Husband husband;	public String getName() {		return name;	}	public void setName(String name) {		this.name = name;	}	public Husband getHusband() {		return husband;	}	public void setHusband(Husband husband) {		this.husband = husband;	}	}

 wife.java

 

package com;import org.hibernate.Session;import org.hibernate.SessionFactory;import org.hibernate.Transaction;import org.hibernate.cfg.Configuration;import org.junit.After;import org.junit.Before;import org.junit.Test;import com.entity.Food;import com.entity.Husband;import com.entity.User;import com.entity.Wife;import com.entity.student.Classes;import com.entity.student.Teacher;public class Test1 {	private Session s;	private Transaction tran;	@Before	public void before(){		s=HibernateUtils.getSession();		tran=s.beginTransaction();	}		public void test(){				User user=(User)s.get(User.class,7);		//持久太		//user.setUsername("xixixi");		//修改后不用save直接提交也可保存		tran.commit();		s.clear();//使对象与session没有关系 , 脱离持久太				//把游离态的user变成持久态		tran=s.beginTransaction();		s.update(user);		user.setPassword("789");		tran.commit();				//将对象变成顺时太		tran=s.beginTransaction();		s.delete(user);		tran.commit();	}		public void one2one(){		Husband h=new Husband();		Wife w=new Wife();		//创建两个瞬时对象		h.setName("xiaoming");		w.setName("baby");		w.setHusband(h);		s.save(w);		s.save(h);			}	@Test	public void one2oneQuery(){		Husband h=(Husband)s.get(Husband.class, 2);		System.out.println(h.getName()+"-------------"+h.getWife().getName());	}				@After 	public void after(){		tran.commit(); 			HibernateUtils.closeSession(s);	}	}

 test1.java

Hibernate 一对一关联映射