现在的位置: 首页 > 综合 > 正文

Hibernate 一对多关系映射

2013年11月03日 ⁄ 综合 ⁄ 共 2619字 ⁄ 字号 评论关闭

 

Student类:

import java.util.HashSet;

import java.util.Set;

 

import javax.annotation.Generated;

import javax.persistence.CascadeType;

import javax.persistence.Entity;

import javax.persistence.FetchType;

import javax.persistence.GeneratedValue;

import javax.persistence.Id;

import javax.persistence.JoinColumn;

import javax.persistence.JoinTable;

import javax.persistence.ManyToMany;

import javax.persistence.ManyToOne;

import javax.persistence.SequenceGenerator;

import javax.persistence.Table;

 

@Entity

@Table(name = "t_student")

@SequenceGenerator(name = "seq", sequenceName = "seq_teacher_id")

public class Student {

    @Id

    @GeneratedValue(generator = "seq")

    Integer studentId;

    String studentName;

    @ManyToOne(cascade = CascadeType.ALL, fetch = FetchType.EAGER)

   @JoinTable(name = "t_teacher_student", inverseJoinColumns = { @JoinColumn(name = "teacherid") }, joinColumns = { @JoinColumn(name = "studentid") })

    Teacher teacher = new Teacher();

 

    public Integer getStudentId() {

       return studentId;

    }

 

    public void setStudentId(Integer studentId) {

       this.studentId = studentId;

    }

 

    public String getStudentName() {

       return studentName;

    }

 

    public void setStudentName(String studentName) {

       this.studentName = studentName;

    }

 

    public Teacher getTeacher() {

       return teacher;

    }

 

    public void setTeacher(Teacher teacher) {

       this.teacher = teacher;

    }

}

 

Teacher:

import java.util.HashSet;

import java.util.Set;

 

import javax.persistence.CascadeType;

import javax.persistence.Entity;

import javax.persistence.FetchType;

import javax.persistence.GeneratedValue;

import javax.persistence.Id;

import javax.persistence.JoinColumn;

import javax.persistence.JoinTable;

import javax.persistence.ManyToMany;

import javax.persistence.OneToMany;

import javax.persistence.SequenceGenerator;

import javax.persistence.Table;

 

@Entity

@Table(name = "t_teacher")

@SequenceGenerator(name = "seq", sequenceName = "seq_student_id")

public class Teacher {

    @Id

    @GeneratedValue(generator = "seq")

    Integer teacherId;

    String teacherName;

    @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER, mappedBy = "teacher")

    Set<Student> students = new HashSet<Student>(0);

 

    public Integer getTeacherId() {

       return teacherId;

    }

 

    public void setTeacherId(Integer teacherId) {

       this.teacherId = teacherId;

    }

 

    public String getTeacherName() {

       return teacherName;

    }

 

    public void setTeacherName(String teacherName) {

       this.teacherName = teacherName;

    }

 

    public Set<Student> getStudents() {

       return students;

    }

 

    public void setStudents(Set<Student> students) {

       this.students = students;

    }

 

    public void addStudent(Student student) {

       this.students.add(student);

    }

}

 

测试:

 

 

import org.hibernate.Session;

import org.hibernate.Transaction;

-->

作者:

抱歉!评论已关闭.