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

Many-To-Many (学生、课程、分数)
博客分类:Hibernate 4.1 manytomanyMany-To-Many (学生、课程、分数)
多对多:
一个学生可以选多门课
一门课可以被多个学生选修

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

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

Java代码JAVA|Many-To-Many (学生、课程、分数)
文章图片

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



二、Course.java

Java代码JAVA|Many-To-Many (学生、课程、分数)
文章图片
  1. import javax.persistence.Entity;
  2. import javax.persistence.GeneratedValue;
  3. import javax.persistence.Id;
  4. @Entity
  5. public class Course {
  6. private int id;
  7. private String name;
  8. @Id
  9. @GeneratedValue
  10. public int getId() {
  11. return id;
  12. }
  13. public void setId(int id) {
  14. this.id = id;
  15. }
  16. public String getName() {
  17. return name;
  18. }
  19. public void setName(String name) {
  20. this.name = name;
  21. }
  22. }



三、Score.java

Java代码JAVA|Many-To-Many (学生、课程、分数)
文章图片
  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. @Entity
  8. @Table(name="score")
  9. public class Score {
  10. private int id;
  11. private int score;
  12. private Student student;
  13. private Course course;
  14. @Id
  15. @GeneratedValue
  16. public int getId() {
  17. return id;
  18. }
  19. public void setId(int id) {
  20. this.id = id;
  21. }
  22. public int getScore() {
  23. return score;
  24. }
  25. public void setScore(int score) {
  26. this.score = score;
  27. }
  28. @ManyToOne
  29. @JoinColumn(name="student_id")
  30. public Student getStudent() {
  31. return student;
  32. }
  33. public void setStudent(Student student) {
  34. this.student = student;
  35. }
  36. @ManyToOne
  37. @JoinColumn(name="course_id")
  38. public Course getCourse() {
  39. return course;
  40. }
  41. public void setCourse(Course course) {
  42. this.course = course;
  43. }
  44. }

    推荐阅读