JAVA|Many-To-Many (学生、课程、分数)
Many-To-Many (学生、课程、分数)
博客分类:Hibernate 4.1 manytomanyMany-To-Many (学生、课程、分数)
多对多:
一个学生可以选多门课
一门课可以被多个学生选修
多对一:
多组分数对应一个学生
多组分数对应一门课程
多对多要有三张表 分别为:
student、course、sorce
一、Student.java
Java代码
文章图片
- import java.util.HashSet;
- import java.util.Set;
- import javax.persistence.Entity;
- import javax.persistence.GeneratedValue;
- import javax.persistence.Id;
- import javax.persistence.JoinColumn;
- import javax.persistence.JoinTable;
- import javax.persistence.ManyToMany;
- @Entity
- public class Student {
- private int id;
- private String name;
- private Set
courses = new HashSet (); - @ManyToMany
- //设置第三张表score与student和course表之间的外键连接,操作其中两张表的数据时,成绩表数据也会被操作
- @JoinTable(name="score",
- joinColumns=@JoinColumn(name="student_id", referencedColumnName="id"),
- inverseJoinColumns=@JoinColumn(name="course_id", referencedColumnName="id")
- )
- public Set
getCourses() { - return courses;
- }
- public void setCourses(Set
courses) { - this.courses = courses;
- }
- @Id
- @GeneratedValue
- public int getId() {
- return id;
- }
- public void setId(int id) {
- this.id = id;
- }
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- }
二、Course.java
Java代码
文章图片
- import javax.persistence.Entity;
- import javax.persistence.GeneratedValue;
- import javax.persistence.Id;
- @Entity
- public class Course {
- private int id;
- private String name;
- @Id
- @GeneratedValue
- public int getId() {
- return id;
- }
- public void setId(int id) {
- this.id = id;
- }
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- }
三、Score.java
Java代码
文章图片
- import javax.persistence.Entity;
- import javax.persistence.GeneratedValue;
- import javax.persistence.Id;
- import javax.persistence.JoinColumn;
- import javax.persistence.ManyToOne;
- import javax.persistence.Table;
- @Entity
- @Table(name="score")
- public class Score {
- private int id;
- private int score;
- private Student student;
- private Course course;
- @Id
- @GeneratedValue
- public int getId() {
- return id;
- }
- public void setId(int id) {
- this.id = id;
- }
- public int getScore() {
- return score;
- }
- public void setScore(int score) {
- this.score = score;
- }
- @ManyToOne
- @JoinColumn(name="student_id")
- public Student getStudent() {
- return student;
- }
- public void setStudent(Student student) {
- this.student = student;
- }
- @ManyToOne
- @JoinColumn(name="course_id")
- public Course getCourse() {
- return course;
- }
- public void setCourse(Course course) {
- this.course = course;
- }
- }
推荐阅读
- JAVA(抽象类与接口的区别&重载与重写&内存泄漏)
- 每日一话(49)——一位清华教授在朋友圈给大学生的9条建议
- 事件代理
- Java|Java OpenCV图像处理之SIFT角点检测详解
- java中如何实现重建二叉树
- 为什么985/211的学生能胜任工作获得老板的青睐。
- 数组常用方法一
- 【Hadoop踩雷】Mac下安装Hadoop3以及Java版本问题
- 【教育故事】|【教育故事】 一个“问题学生”的蜕变
- 试论化院的学生自组织