`

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

阅读更多
Many-To-Many (学生、课程、分数)

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

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

多对多要有三张表 分别为:student、course、sorce
一、Student.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<Course> courses = new HashSet<Course>();
	
	@ManyToMany
         //设置第三张表score与student和course表之间的外键连接,操作其中两张表的数据时,成绩表数据也会被操作
	@JoinTable(name="score",
		joinColumns=@JoinColumn(name="student_id", referencedColumnName="id"),
		inverseJoinColumns=@JoinColumn(name="course_id", referencedColumnName="id")
		)
	public Set<Course> getCourses() {
		return courses;
	}
	public void setCourses(Set<Course> 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

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



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;
	}
	
}
分享到:
评论

相关推荐

    hibernate学生-课程-成绩

    - 一对多(One-to-Many)关系:一个学生可以选修多门课程,体现在学生实体中使用@OneToMany注解,课程实体中使用@ManyToOne注解,通过外键关联。 - 多对一(Many-to-One)关系:一门课程可以被多个学生选修,体现...

    Hibernate 练习题

    例如,一个学生可以选修多门课程,一门课程也可以被多个学生选修。 4. **多对一关联映射(Many-to-One)**:这种关系与一对多相反,表示多个实体可以与一个实体关联,但每个实体只与一个目标实体关联。如,多个订单...

    高职高专教育英语课程教学基本要求内容.docx

    高职高专教育阶段的英语课程教学目标旨在培养学生的实际语言运用能力,特别是在语法方面的掌握。本教学基本要求文档列出了学生需要掌握的核心语法知识,但并不强调对所有项目的专题讲解,而是注重通过实际应用来提升...

    iOS CoreData实现简易的成绩管理系统

    - 你还可以定义关系(Relationships),如一个学生可以有多个成绩记录,这可以通过设置"to-many"关系实现。 3. **Managed Object Context**: - MOC是CoreData的主要工作区,用于处理对象的创建、修改和删除操作...

    新视野大学英语(五)课后答案

    例如:“The scores ranged from 60 to 95.”(分数范围从60分到95分。) **搭配部分** - **Understanding**:理解力。例如:“He has a deep understanding of the subject.”(他对这门学科有着深刻的理解。) -...

    数据库考试题及答案.docx

    - Course表:包含课程号cno,课程名cname和学分数mark。 - Teacher表:包含教师编号tno,教师姓名tname和专业major。 - Student表:包含学号sno,学生姓名sname,年龄age,班级号bno和总成绩score。 - Supervise...

    英语写作点睛之笔200句

    【英语写作点睛之笔200句】这个资源或课程旨在帮助学生和英语学习者提升他们的写作技巧,尤其在英语作文中实现亮点和出彩的表达。通过200个精心挑选的句子,它旨在教会用户如何用有力、引人入胜的方式来表达观点,使...

    2020_2021学年高中英语Unit5FirstaidLearningaboutlanguage课时作业2新人教版必修5202

    同时,参加音乐和艺术课程的学生在分数上也有所提高。这表明学生的学业成功与参与音乐教育密切相关。此外,公共学校中的音乐项目不仅有助于学术成就,还对学生的社交技巧、自信心和团队合作能力的培养有着积极影响。...

    人教版新起点五年级英语下册Unit1KeepingHealthyLesson3_学案.pdf

    巩固训练部分,学生们需要写出与中文对应的英文短语,如“我所有的课程”(all my lessons)、“得到好的分数”(get good grades)、“继续玩电脑”(keep playing computer games)、“关掉电视和电脑”(turn off...

    2020_2021学年八年级英语下册Unit7KnowOurWorldLesson38TheWorldIsaBigPlace课时

    这篇资料是针对初中二年级学生的英语课程,主题为“了解我们的世界”,具体是关于地球以及宇宙的知识。在这一课中,学生将学习到与天体、人口、文化、地理相关的内容,同时还有语言运用的练习。 第一部分是根据首...

    基于RoR的在线考试系统

    这需要在数据库中设置关联关系,如通过has_many和belongs_to关系定义课程与科目、科目与试题之间的关联。 3. **试题库管理**:试题是在线考试的核心,包括选择题、填空题、判断题等多种类型。试题需要分类存储,...

    英语六级作文常用句式.doc

    2. "According to the data…" 提供数据支持,如:“根据数据显示,80%的学生认为增加图书馆开放时间是有必要的。” 四、表示“数据”的常用句型: 1. 描述哪个元素占比最大,可以用"…had the largest percentage ...

Global site tag (gtag.js) - Google Analytics