码迷,mamicode.com
首页 > Web开发 > 详细

hibernate使用注解的方式进行多对一关联

时间:2015-08-07 22:24:45      阅读:156      评论:0      收藏:0      [点我收藏+]

标签:hibernate


1 添加支持jap注解的包;

2 在持久化类中配置注解;

3 在配置中配置映射;

4 用 AnnotationConfigurration配置;

5 常用注解:  

           @Entity  表示持久化类;

           @Id     主键
           @GeneratedValue  主键自增

           @ManyToOne(cascade=(CascadeType.ALL))       所有操作进行级联

           @@OneToMany(cascade=(CascadeType.ALL),mappedBy="classes")   mappedBy 拥有该注解的类放弃控制权

6  双向关联通常和关联双方都加cascade及mappBy一起用;


双向多对一:


package com.tem.hib;

import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.ManyToOne;



@Entity
public class Student {
	@Id
	@GeneratedValue
	private Integer sid;
	private String sname;
	@ManyToOne(cascade=(CascadeType.ALL))
	private Classes classes;
	
	
	public Classes getClasses() {
		return classes;
	}
	public void setClasses(Classes classes) {
		this.classes = classes;
	}
	public Integer getSid() {
		return sid;
	}
	public void setSid(Integer sid) {
		this.sid = sid;
	}
	public String getSname() {
		return sname;
	}
	public void setSname(String sname) {
		this.sname = sname;
	}
	
	
}


package com.tem.hib;

import java.util.HashSet;
import java.util.Set;
import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.OneToMany;
@Entity
public class Classes {
	@Id
	@GeneratedValue
	private Integer cid;
	private String cname;
	@OneToMany(cascade=(CascadeType.ALL),mappedBy="classes")
	private Set<Student> students=new HashSet<Student>();
	
	
	public Set<Student> getStudents() {
		return students;
	}
	public void setStudents(Set<Student> students) {
		this.students = students;
	}
	public Integer getCid() {
		return cid;
	}
	public void setCid(Integer cid) {
		this.cid = cid;
	}
	public String getCname() {
		return cname;
	}
	public void setCname(String cname) {
		this.cname = cname;
	}
	
	
}

package com.tem.test;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.AnnotationConfiguration;
import org.hibernate.cfg.Configuration;

import com.tem.hib.Classes;
import com.tem.hib.Student;

public class Test {

	public static void main(String[] args) {
		Configuration cfg=new AnnotationConfiguration().configure();
//		SchemaExport schema=new SchemaExport(cfg);
//		schema.create(true, true);
		SessionFactory sf=cfg.buildSessionFactory();
		
		Session session=sf.openSession();
		session.beginTransaction();
		Student s=new Student();
		Classes c=new Classes();
		c.setCname("C3");
		s.setSname("a1");
		s.setClasses(c);
		c.getStudents().add(s);
		session.save(c);
		session.getTransaction().commit();
	}

}





hibernate使用注解的方式进行多对一关联

标签:hibernate

原文地址:http://blog.csdn.net/liangwenmail/article/details/47344963

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!