EJB笔记三 many to many
来源:互联网 发布:智能投顾软件 编辑:程序博客网 时间:2024/05/29 04:49
多对多关系采用 中间表连接的映射策略。建立的中间表将分别引入两边的主键做为外键
@SuppressWarnings("serial")
@Entity
@Table(name = "Student")
public class Student implements Serializable...{
private Integer studentid;
private String StudentName;
private Set<Teacher> teachers = new HashSet<Teacher>();
public Student() ...{}
public Student(String studentName) ...{
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) ...{
StudentName = studentName;
}
@ManyToMany(mappedBy = "students") //mappedBy定义了student为双向关系的维护端
public Set<Teacher> getTeachers() ...{
return teachers;
}
public void setTeachers(Set<Teacher> teachers) ...{
this.teachers = teachers;
}
}
@Entity
@Table(name = "Student")
public class Student implements Serializable...{
private Integer studentid;
private String StudentName;
private Set<Teacher> teachers = new HashSet<Teacher>();
public Student() ...{}
public Student(String studentName) ...{
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) ...{
StudentName = studentName;
}
@ManyToMany(mappedBy = "students") //mappedBy定义了student为双向关系的维护端
public Set<Teacher> getTeachers() ...{
return teachers;
}
public void setTeachers(Set<Teacher> teachers) ...{
this.teachers = teachers;
}
}
@SuppressWarnings("serial")
@Entity
@Table(name = "Teacher")
public class Teacher implements Serializable...{
private Integer teacherid;
private String TeacherName;
private Set<Student> students = new HashSet<Student>();
public Teacher() ...{}
public Teacher(String teacherName) ...{
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) ...{
TeacherName = teacherName;
}
@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)) ...{
this.students.add(student);
}
}
public void removeStudent(Student student) ...{
this.students.remove(student);
}
}
@Entity
@Table(name = "Teacher")
public class Teacher implements Serializable...{
private Integer teacherid;
private String TeacherName;
private Set<Student> students = new HashSet<Student>();
public Teacher() ...{}
public Teacher(String teacherName) ...{
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) ...{
TeacherName = teacherName;
}
@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)) ...{
this.students.add(student);
}
}
public void removeStudent(Student student) ...{
this.students.remove(student);
}
}
- EJB笔记三 many to many
- EJB笔记二 one to many
- NHibernate学习笔记(三):many-to-one/one-to-many/many-to-many关系映射
- NHibernate学习笔记(三):many-to-one/one-to-many/many-to-many关系映射
- many-to-many性能
- hibernate-----many-to-many
- Hibernate many to many
- hibernate many-to-many
- many to many
- Many-to-many Query
- Many-to-Many
- many-to-many
- Hibernate Many-to-Many
- many-to-one使用笔记
- Hibernate级联实践之三(many-to-many)
- 学习笔记-----------表之间的关联(one-to-one many-to-one many-to-many)
- Hibernate Many-To-Many Revisited
- hibernate many to many查询
- 用C语言进行CGI程序设计
- 使用lsof恢复误删的文件
- IT人士漫画,辛酸可见一般
- LINQ in Action (Paperback), Jan.2008.eBook-BBL
- 我上传了一个自己做的flash 网站
- EJB笔记三 many to many
- Penetration Tester's Open Source Toolkit, Volume 2 (Paperback), Oct.2007.eBook-BBL
- “UNMOUNTABLE-BOOT-VOLUME及Lsass.exe unable to locate component” 解决
- MCTS Windows Vista Client Configuration Study Guide (Exam 70-620), (Second Edition) (Study Guide) (Paperback) Jul.2007.eBook-BBL
- Zend Framework 剖析之MVC
- 母猫过马路时被撞死 公猫守候久久不愿离去(图)
- RFC2330——Framework for IP Performance Metrics IP性能测度框架(中)
- 超级变态的超级玛丽联想到的
- MySQL数据库编码转换方法