GeneratedValue

来源:互联网 发布:阿里云如何升级配置 编辑:程序博客网 时间:2024/05/24 01:47

  Course类:

  @Entity

  @Table(name="t_course")

  public class Course

  {

  private int id;

  private String name;

  private Set teachers;

  public Course()

  {

  teachers = new HashSet();

  }

  public void addTeacher(Teacher teacher)

  {

  teachers.add(teacher);

  }

  @ManyToMany   ---> ManyToMany指定多对多的关联关系

  @JoinTable(name="t_teacher_course", joinColumns={ @JoinColumn(name="cid")},

  inverseJoinColumns={ @JoinColumn(name = "tid") })  --->  因为多对多之间会通过一张中间表来维护两表直接的关系,所以通过 JoinTable 这个注解来声明,name就是指定了中间表的名字,JoinColumns是一个 @JoinColumn类型的数组,表示的是我这方在对方中的外键名称,我方是Course,所以在对方外键的名称就是 rid ,inverseJoinColumns也是一个 @JoinColumn类型的数组,表示的是对方在我这放中的外键名称,对方是Teacher,所以在我方外键的名称就是 tid public Set getTeachers()

  {

  return teachers;

  }

  public void setTeachers(Set teachers)

  {

  this.teachers = teachers;

  }

  @Id

  @GeneratedValue

  public int getId()

  {

  return id;

  }

  public void setId(int id)

  {

  this.id = id;

  }

  public String getName()

  {

  return name;

  }

  public void setName(String name)

  {

  this.name = name;

  }

  }

  2.将Many-to-Many拆分成两个One-to-Many的映射(Admin、Role、AdminRole)

  Admin类:

  @Entity

  @Table(name="t_admin")

  public class Admin

  {

  private int id;

  private String name;

  private Set ars;

  public Admin()

  {

  ars = new HashSet();

  }

  public void add(AdminRole ar)

  {

  ars.add(ar);

  }

  @Id

  @GeneratedValue

  public int getId()

  {

  return id;

  }

  public void setId(int id)

  {

  this.id = id;

  }

  public String getName()

  {

  return name;

  }

  public void setName(String name)

  {

  this.name = name;

  }

  @OneToMany(mappedBy="admin")  --->  OneToMany关联到了AdminRole这个类,由AdminRole这个类来维护多对一的关系,mappedBy="admin"

  @LazyCollection(LazyCollectionOption.EXTRA)

  public Set getArs()

  {

  return ars;

  }

  public void setArs(Set ars)

  {

  this.ars = ars;

  }

  }

  Role类:

  @Entity

  @Table(name="t_role")

  public class Role

  {

  private int id;

  private String name;

  private Set ars;

  public Role()

  {

  ars = new HashSet();

  }

  public void add(AdminRole ar)

  {

  ars.add(ar);

  }

  @Id

  @GeneratedValue

  public int getId()

  {

  return id;

  }

  public void setId(int id)

  {

  this.id = id;

  }

  public String getName()

  {

  return name;

  }

  public void setName(String name)

  {

  this.name = name;

  }

  @OneToMany(mappedBy="role")  --->  OneToMany指定了由AdminRole这个类来维护多对一的关联关系,mappedBy="role"

  @LazyCollection(LazyCollectionOption.EXTRA)

  public Set getArs()

  {

  return ars;

  }

  public void setArs(Set ars)

  {

  this.ars = ars;

  }

  }

  AdminRole类:

  @Entity

  @Table(name="t_admin_role")

  public class AdminRole

  {

  private int id;

  private String name;

  private Admin admin;

  private Role role;

  @Id

  @GeneratedValue

  public int getId()

  {

  return id;

  }

  public void setId(int id)

  {

  this.id = id;

  }

  public String getName()

  {

  return name;

  }

  public void setName(String name)

  {

  this.name = name;

  }

  @ManyToOne  --->  ManyToOne关联到Admin

  @JoinColumn(name="aid")

  public Admin getAdmin()

0 0
原创粉丝点击