Many-To-Many (学生、课程、分数)

来源:互联网 发布:安卓手机数据恢复 编辑:程序博客网 时间:2024/06/08 18:57

Many-To-Many (学生、课程、分数)

    博客分类: 
  • Hibernate 4.1
manytomany 
Many-To-Many (学生、课程、分数)

多对多: 
一个学生可以选多门课 
一门课可以被多个学生选修 

多对一: 
多组分数对应一个学生 
多组分数对应一门课程 

多对多要有三张表 分别为:student、course、sorce 
一、Student.java 

Java代码  收藏代码
  1. import java.util.HashSet;  
  2. import java.util.Set;  
  3.   
  4. import javax.persistence.Entity;  
  5. import javax.persistence.GeneratedValue;  
  6. import javax.persistence.Id;  
  7. import javax.persistence.JoinColumn;  
  8. import javax.persistence.JoinTable;  
  9. import javax.persistence.ManyToMany;  
  10.   
  11. @Entity  
  12. public class Student {  
  13.     private int id;  
  14.     private String name;  
  15.     private Set<Course> courses = new HashSet<Course>();  
  16.       
  17.     @ManyToMany  
  18.          //设置第三张表score与student和course表之间的外键连接,操作其中两张表的数据时,成绩表数据也会被操作  
  19.     @JoinTable(name="score",  
  20.         joinColumns=@JoinColumn(name="student_id", referencedColumnName="id"),  
  21.         inverseJoinColumns=@JoinColumn(name="course_id", referencedColumnName="id")  
  22.         )  
  23.     public Set<Course> getCourses() {  
  24.         return courses;  
  25.     }  
  26.     public void setCourses(Set<Course> courses) {  
  27.         this.courses = courses;  
  28.     }  
  29.     @Id  
  30.     @GeneratedValue  
  31.     public int getId() {  
  32.         return id;  
  33.     }  
  34.     public void setId(int id) {  
  35.         this.id = id;  
  36.     }  
  37.     public String getName() {  
  38.         return name;  
  39.     }  
  40.     public void setName(String name) {  
  41.         this.name = name;  
  42.     }  
  43.       
  44. }  



二、Course.java 

Java代码  收藏代码
  1. import javax.persistence.Entity;  
  2. import javax.persistence.GeneratedValue;  
  3. import javax.persistence.Id;  
  4.   
  5. @Entity  
  6. public class Course {  
  7.     private int id;  
  8.     private String name;  
  9.     @Id  
  10.     @GeneratedValue  
  11.     public int getId() {  
  12.         return id;  
  13.     }  
  14.     public void setId(int id) {  
  15.         this.id = id;  
  16.     }  
  17.     public String getName() {  
  18.         return name;  
  19.     }  
  20.     public void setName(String name) {  
  21.         this.name = name;  
  22.     }  
  23.       
  24. }  



三、Score.java
 

Java代码  收藏代码
  1. import javax.persistence.Entity;  
  2. import javax.persistence.GeneratedValue;  
  3. import javax.persistence.Id;  
  4. import javax.persistence.JoinColumn;  
  5. import javax.persistence.ManyToOne;  
  6. import javax.persistence.Table;  
  7.   
  8. @Entity  
  9. @Table(name="score")  
  10. public class Score {  
  11.     private int id;  
  12.     private int score;  
  13.     private Student student;  
  14.     private Course course;  
  15.     @Id  
  16.     @GeneratedValue  
  17.     public int getId() {  
  18.         return id;  
  19.     }  
  20.     public void setId(int id) {  
  21.         this.id = id;  
  22.     }  
  23.     public int getScore() {  
  24.         return score;  
  25.     }  
  26.     public void setScore(int score) {  
  27.         this.score = score;  
  28.     }  
  29.     @ManyToOne  
  30.     @JoinColumn(name="student_id")  
  31.     public Student getStudent() {  
  32.         return student;  
  33.     }  
  34.     public void setStudent(Student student) {  
  35.         this.student = student;  
  36.     }  
  37.       
  38.     @ManyToOne  
  39.     @JoinColumn(name="course_id")  
  40.     public Course getCourse() {  
  41.         return course;  
  42.     }  
  43.     public void setCourse(Course course) {  
  44.         this.course = course;  
  45.     }  
  46.       
  47. }  
原创粉丝点击