模型结构中的多对多关系

nts*_*tha 1 java model-view-controller

例如,如果我的数据库中有以下表格,并且学生和课程有很多关系.

Student
-------
Id (Primary Key)
FirstName
LastName

Course
------
Id (Primary Key)
Title

StudentCourse
-------------
StudentId (Foreign Key -> Student)
CourseId (Foreign Key -> Course)
Run Code Online (Sandbox Code Playgroud)

现在,如果我的模型如下

public class Student
{
  private int ID;
  private String firstName;
  private String lastName;

  //getter and setter
}
Run Code Online (Sandbox Code Playgroud)

public class Course
{
private int ID;
pirvate String title;
//getter and setter
}
Run Code Online (Sandbox Code Playgroud)

所以我的问题是,如果我只创建这两个bean,我会遇到什么样的问题?我将遇到什么样的问题以及在哪种情况下?请为这么多关系指定正确的bean结构.

sze*_*edi 5

你会遇到什么问题:

  • 您将无法看到学生 - 课程协会
  • 您将无法从课程导航到课程中的学生(反之亦然)
  • 删除学生/课程时会遇到问题,如果它在StudentCourse表中(外包密钥违规)

一般来说:你不希望这样.

可能的解决方案:使用ORM系统,如Hibernate,EclipseLink或OpenJPA.然后,你可以有一个private List<Student> students;在你的Course实体(实体这里比豆一个更好的名字,恕我直言),和/或private List<Course> courses;Student实体.

要在List <>字段和数据库中的连接表之间建立实际关联,您需要配置映射(这是ORM用于弥合数据库模式和实体之间差距的配置).