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;
     }
     
    
    }
  • 相关阅读:
    != 比 & 的优先级高
    VC++ 报错:Heap corruption detected
    sqlite 查询数据库中所有的表名,判断某表是否存在,将某列所有数值去重后获得数量
    Unicode与UTF-8,UTF-16
    各种格式的压缩包解压,7zip 命令行
    bat批处理文件运行时隐藏cmd窗口
    标准库中 vector list等排序
    duilib 实现列表头任意拖动
    duilib 实现 XML重用(item完全重合的CList)
    C++-POJ2503-Babelfish[hash]
  • 原文地址:https://www.cnblogs.com/lbangel/p/3022792.html
Copyright © 2011-2022 走看看