057:hibernate:作业Student_Course_Score(重要)

来源:互联网 发布:组态读取串口数据 编辑:程序博客网 时间:2024/06/06 09:34

学生课程、分数的设计

使用联合主键@Embeddedled

                      实现serializable接口

 

package com.bjsxt.hibernate;import javax.persistence.Entity;import javax.persistence.GeneratedValue;import javax.persistence.Id;@Entitypublic class Course {private int id;private String name;@Id@GeneratedValuepublic 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;}}


 

package com.bjsxt.hibernate;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@GeneratedValuepublic 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;}}


 

package com.bjsxt.hibernate;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;@Entitypublic class Student {private int id;private String name;private Set<Course> courses = new HashSet<Course>();@ManyToMany@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@GeneratedValuepublic 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中,导行到Student

@ManyToOne

@JoinColumn(name="student_id")

public Student getStudent() {

                                       return student;

                     }

导行到Course

 @ManyToOne

@JoinColumn(name="course_id")

public Course getCourse() {

                                  return course;

              }

如果要从Student找到对应的哪些课程的话,把Student设到Course而不是把course设到Student,也就是manytomany的单向。

即设导航,通过Student可以导航到Course,通过Score可以导航到Student和Course

对Score.java中加上@Table(name="score")

运行结果:

 

 

0 0
原创粉丝点击