• 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

  • 相关阅读:
    jQuery选择器
    jQuery属性
    复选框的全选+全不选+ajax传递复选框的value值+后台接受复选框默认值
    [BZOJ1085][SCOI2005]骑士精神 搜索
    [BZOJ1004][HNOI2008]Cards 群论+置换群+DP
    [BZOJ1046][HAOI2007]上升序列 DP+贪心
    [BZOJ1016][JSOI2008]最小生成树计数 最小生成树 搜索
    [BZOJ1031][JSOI2007]字符加密Cipher 后缀数组
    后缀数组学习笔记
    [SPOJ8222]NSUBSTR
  • 原文地址:https://www.cnblogs.com/tianhao/p/4022872.html
Copyright © 2020-2023  润新知