实体关系之@ManyToMany
来源:互联网 发布:c语言代码大全源码 编辑:程序博客网 时间:2024/05/01 03:35
- 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);
- }
- }
转自:http://lym6520.iteye.com/blog/314065
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实体关系映射之注释
- 【001.Matlab概述及基础】
- sublime问题大集合
- Handler总结常用方法及常见问题
- Android缩放动画
- 模型实例化M和D的区别
- 实体关系之@ManyToMany
- 我之 Android Activity生命周期
- js操作cookies
- nafxcwd.lib(afxmem.obj) : error LNK2005: "void * __cdecl operator new(unsigned int)" (??2@YAPAXI@Z)
- HTML5 中的新标签
- Scala集合
- 北京某公司"新产品研发项目管理"内训圆满结束!
- 农业数字化怎么做?Insentek从大地探针入手,用动态数据指导施肥灌溉
- 团队开发环境搭建