模型结构中的多对多关系

时间:2013-01-08 16:47:50

标签: java model-view-controller

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

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

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

StudentCourse
-------------
StudentId (Foreign Key -> Student)
CourseId (Foreign Key -> Course)

现在,如果我的模型如下

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

  //getter and setter
}

public class Course
{
private int ID;
pirvate String title;
//getter and setter
}

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

2 个答案:

答案 0 :(得分:5)

你会遇到什么问题:

  • 您将无法看到学生 - 课程协会
  • 您将无法从课程导航到课程中的学生(反之亦然)
  • 如果学生/课程在学生课程表(违反外语密钥)中删除,则会有问题。

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

可能的解决方案:使用ORM系统,如Hibernate,EclipseLink或OpenJPA。然后,您可以在private List<Student> students;实体中拥有Course(实体在这里比bean更好,imho)和/或private List<Course> courses;实体中的Student。< / p>

使List&lt;&gt;之间的实际关联在数据库中的字段和连接表中,您需要配置映射(这是ORM用于弥合数据库模式和实体之间差距的配置)。

答案 1 :(得分:0)

http://docs.oracle.com/javaee/1.4/tutorial/doc/BMP3.html

这可能对您有用。因为我前几天有类似的问题..