实体关系之@ManyToMany
来源:互联网 发布:开淘宝需要营业执照吗 编辑:程序博客网 时间:2024/05/01 01:57
转自http://lym6520.iteye.com/blog/314065
Student.java
package com.entity; import java.io.Serializable; import java.util.HashSet; import java.util.Set; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.ManyToMany; import javax.persistence.Table; @Entity @Table(name = "Student") public class Student implements Serializable { private Integer studentid;//学生ID private String studentName;//学生姓名 private Set<Teacher> teachers = new HashSet<Teacher>();//对应的教师集合 public Student() { } public Student(String studentName) { this.studentName = studentName; } @Id @GeneratedValue public Integer getStudentid() { return studentid; } public void setStudentid(Integer studentid) { this.studentid = studentid; } @Column(nullable = false, length = 32) public String getStudentName() { return studentName; } public void setStudentName(String studentName) { this.studentName = studentName; } /* * @ManyToMany 注释表示Student是多对多关系的一边,mappedBy 属性定义了Student 为双向关系的维护端 */ @ManyToMany(mappedBy = "students") public Set<Teacher> getTeachers() { return teachers; } public void setTeachers(Set<Teacher> teachers) { this.teachers = teachers; } }Teacher.java
package com.entity; import java.io.Serializable; import java.util.HashSet; import java.util.Set; import javax.persistence.CascadeType; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.FetchType; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.JoinTable; import javax.persistence.ManyToMany; import javax.persistence.Table; import javax.persistence.JoinColumn; @Entity @Table public class Teacher implements Serializable { private Integer teacherid;// 教师ID private String teacherName;// 教师姓名 private Set<Student> students = new HashSet<Student>();// 对应的学生集合 public Teacher() { } public Teacher(String teacherName) { this.teacherName = teacherName; } @Id @GeneratedValue public Integer getTeacherid() { return teacherid; } public void setTeacherid(Integer teacherid) { this.teacherid = teacherid; } @Column(nullable = false, length = 32) public String getTeacherName() { return teacherName; } public void setTeacherName(String teacherName) { this.teacherName = teacherName; } /* * @ManyToMany 注释表示Teacher 是多对多关系的一端。 * @JoinTable 描述了多对多关系的数据表关系,name属性指定中间表名称。 * joinColumns 定义中间表与Teacher 表的外键关系,中间表Teacher_Student的Teacher_ID 列是Teacher 表的主键列对应的外键列。 * inverseJoinColumns 属性定义了中间表与另外一端(Student)的外键关系。 */ @ManyToMany(cascade = CascadeType.PERSIST, fetch = FetchType.LAZY) @JoinTable(name = "Teacher_Student", joinColumns ={@JoinColumn(name = "teacher_ID", referencedColumnName = "teacherid") }, inverseJoinColumns = { @JoinColumn(name = "student_ID", referencedColumnName = "studentid") }) public Set<Student> getStudents() { return students; } public void setStudents(Set<Student> students) { this.students = students; } public void addStudent(Student student) { if (!this.students.contains(student)) {//检测在该散列表中某些键是否映射到指定值,value 查找的值。如果某些键映射到该散列表中的值为true,否则false this.students.add(student); } } public void removeStudent(Student student) { this.students.remove(student); } }
0 0
- 实体关系之@ManyToMany
- 实体关系之@ManyToMany
- 实体关系之@ManyToMany
- Hibernate 表关系描述之ManyToMany
- 实体关系之@OneToMany
- 实体关系之@OneToMany
- 实体关系之@OneToOne
- 实体关系之@OneToMany
- 12hibernate hibernate的关系映射之ManyToMany(重点)
- JPA ManyToMany双向关系
- Hibernate12_映射关系---manyTomany
- Hibernate之实体关系映射
- Hibernate之实体关系映射
- JPA中ManyToMany关系问题
- JPA中ManyToMany关系问题
- Hibernate注解之@ManyToMany
- Hibernate ManyToMany 删除两个实体的关联
- JPA实体关系映射之注释
- vsftpd 530 login incorrect on ubuntu
- [搜狗测试]自动化测试后台揭秘
- Java复习笔记9【数组】
- VS2013 IIS Express 添加MIME映射
- Android数据库 之 SQLite数据库
- 实体关系之@ManyToMany
- 制作带有无界面winpcap的exe安装包
- [转载] JDK与JRE的区别
- response的setCharacterEncoding
- [ERROR] Unable to read and import the source file : 'C:\Users\Administrator\.hudson\jobs\Deeplan\wor
- rest接口 post与get提交的区别
- centos 6.6 下安装sailalign
- LeetCode 203-Remove Linked List Elements
- uva669(暴力)