zoukankan      html  css  js  c++  java
  • 多对多关系

    //省略了set方法
    
    /**
     * 关系维护端
     */
    @Entity
    @Table(name="student_many")
    public class Student {
     private Integer id;
     private String name;
     private Set<Teacher> teacher = new HashSet<Teacher>();
     
     public Student(){}
     
     public Student(String name) {
      super();
      this.name = name;
     }
    
    //inverseJoinColumns 表示关联对方表主键,映射到中间表的字段为teacher_id
     @ManyToMany(cascade=CascadeType.REFRESH)
     @JoinTable(name="student_teacher",inverseJoinColumns=@JoinColumn(
       name="teacher_id"),joinColumns=@JoinColumn(name="student_id"))
     public Set<Teacher> getTeacher() {
      return teacher;
     }
    
     @Id @GeneratedValue
     public Integer getId() {
      return id;
     }
     @Column(length=20,nullable=false)
     public String getName() {
      return name;
     }
    
     public void addTeacher(Teacher teacher){
      this.teacher.add(teacher);
     }
     public void removeTeacher(Teacher teacher){
      if(this.teacher .contains(teacher)){
       this.teacher.remove(teacher);
      }
     }
    
    }
    
     
    
     
    
    
    @Entity
    @Table(name="teacher_many")
    public class Teacher {
     private Integer id;
     private String name;
     private Set<Student> student = new HashSet<Student>();
     
     public Teacher(){}
     
     public Teacher(String name) {
      super();
      this.name = name;
     }
     @ManyToMany(cascade=CascadeType.REFRESH,mappedBy="teacher")
     public Set<Student> getStudent() {
      return student;
     }
     public void setStudent(Set<Student> student) {
      this.student = student;
     }
     @Id @GeneratedValue
     public Integer getId() {
      return id;
     }
     public void setId(Integer id) {
      this.id = id;
     }
     @Column(length=20,nullable=false)
     public String getName() {
      return name;
     }
     public void setName(String name) {
      this.name = name;
     }
    
     @Override
     public int hashCode() {
      final int prime = 31;
      int result = 1;
      result = prime * result + ((id == null) ? 0 : id.hashCode());
      return result;
     }
    
     @Override
     public boolean equals(Object obj) {
      if (this == obj)
       return true;
      if (obj == null)
       return false;
      if (getClass() != obj.getClass())
       return false;
      Teacher other = (Teacher) obj;
      if (id == null) {
       if (other.id != null)
        return false;
      } else if (!id.equals(other.id))
       return false;
      return true;
     }
     
    
    }
  • 相关阅读:
    WinScan2PDF ----将图片批量选中后转换成pdf
    画质王(iCYPlayer)播放器
    如何让UEFI BIOS主板在Windows XP SP3 32位系统下识别GPT格式移动硬盘
    windows xp 文件排列全部默认以“详细信息”显示
    asus 笔记本从window 7系统安装到window xp系统的过程
    FastCopy --- 快速复制文件工具
    《极地》纪录片
    Android 机器全擦之后无法驻网了,如何备份和恢复QCN?
    Google Camera
    Android 命令行工具-apkanalyzer
  • 原文地址:https://www.cnblogs.com/lbangel/p/3022792.html
Copyright © 2011-2022 走看看