实体关系之@ManyToMany
来源:互联网 发布:mac无法删除多余账户 编辑:程序博客网 时间:2024/04/30 19:18
实体关系之@ManyToMany
- 博客分类:
- hibernate & ejb
Java
Student.java
Teacher.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);
- }
- }
5
顶
顶
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实体关系映射之注释
- mysql 数据库中 int(3) 和 int(11) 有区别么???
- 一个比较好的命名管道例子
- poj 3321 Apple Tree
- cocos2d——开关按钮的使用(CCMenuItemToggle)
- 各种视频格式有什么区别
- 实体关系之@ManyToMany
- sqlserver中导出为txt
- 第三次程序设计上机报告
- IOS开发:关于设置UIView的背景为图片的方法以及问题
- 排序算法之直接插入排序
- java httpurlconnection链接 lnmp服务器传输与获取数据
- C++第5周项目1 - 设计三角形类
- linux环境下,输出文件大小
- ubuntu linux 下的软硬链接 ln