hibernate 一对多映射

package com.entity.onetomany;



import java.util.ArrayList;

import java.util.List;



import javax.persistence.Entity;

import javax.persistence.OneToMany;



import com.entity.BaseEntity;

@Entity

public class Team extends BaseEntity{

	private String name;

	@OneToMany(mappedBy="team")

	//被Member类的team对象维护即Member.team

	private List<Member> members;

	

	

	public String getName() {

		return name;

	}

	public void setName(String name) {

		this.name = name;

	}

	public List<Member> getMembers() {

		return members;

	}

	public void setMembers(List<Member> members) {

		this.members = members;

	}



}

team.java

package com.entity.onetomany;



import javax.persistence.CascadeType;

import javax.persistence.Entity;

import javax.persistence.JoinColumn;

import javax.persistence.ManyToOne;



import org.hibernate.annotations.Cascade;

import org.hibernate.annotations.NamedQuery;



import com.entity.BaseEntity;



@Entity

@NamedQuery(name = "aa", query = "select m from Member m where team_id=:tid")

public class Member extends BaseEntity {

	private String name;

	private int no;





	@ManyToOne(cascade=CascadeType.PERSIST)

	//级联保存  保存member的时候自动保存team

	@JoinColumn(name="team_id")

	//外键team_id

	//member为多的一方 所以由member来维护

	private Team team;

	

	

	

	



	public int getNo() {

		return no;

	}



	public void setNo(int no) {

		this.no = no;

	}



	public Team getTeam() {

		return team;

	}



	public void setTeam(Team team) {

		this.team = team;

	}



	public String getName() {

		return name;

	}



	public void setName(String name) {

		this.name = name;

	}

	

}


member.java

 

package com;



import java.util.List;

import java.util.Map;



import javax.persistence.Entity;



import org.hibernate.Criteria;

import org.hibernate.Query;

import org.hibernate.SQLQuery;

import org.hibernate.Session;

import org.hibernate.Transaction;

import org.hibernate.annotations.NamedQuery;

import org.hibernate.criterion.Order;

import org.hibernate.criterion.Restrictions;

import org.hibernate.transform.Transformers;

import org.jboss.logging.annotations.Transform.TransformType;

import org.junit.After;

import org.junit.Before;

import org.junit.Test;



import com.entity.onetomany.Member;

import com.entity.onetomany.Team;



public class TestOneToMany {

	private Session s;

	private Transaction tran;

	@Before

	public void before(){

		s=HibernateUtils.getSession();

		tran=s.beginTransaction();

	}

	

	public void one2many(){

		Team team=new Team();

		Team team1=new Team();

		team.setName("lakers");

		team1.setName("thunder");

		Member member1=new Member();

		member1.setName("kobe");

		member1.setTeam(team);//建立关系

		Member member2=new Member();

		member2.setName("nash");

		member2.setTeam(team);//建立关系

		Member member3=new Member();

		member3.setName("boozer");

		member3.setTeam(team);//建立关系

		Member member4=new Member();

		member4.setName("westbrook");

		member4.setTeam(team1);//建立关系

		Member member5=new Member();

		member5.setName("durant");

		member5.setTeam(team1);//建立关系

		Member member6=new Member();

		member6.setName("ibaka");

		member6.setTeam(team1);//建立关系

		s.persist(member1);

		s.persist(member2);

		s.persist(member3);

		s.persist(member4);

		s.persist(member5);

		s.persist(member6);

	}

                public void one2manyquery(){

    		Team team= (Team)s.get(Team.class, 1);

		//获得team对象

		for(Member m:team.getMembers()){

			System.out.println(m.getName());

		}

	}

	@After 

	public void after(){

		tran.commit(); 	

		HibernateUtils.closeSession(s);

	}

}

                        

 testonetomany.java

你可能感兴趣的:(Hibernate)