小编典典

多对多模型结构

java

例如,如果我的数据库中有以下表格,并且“学生和课程”具有多对多关系。

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结构。


阅读 307

收藏
2020-11-26

共1个答案

小编典典

您会遇到什么问题:

  • 您将无法看到“学生-课程”关联
  • 您将无法从课程导航到该课程的学生(反之亦然)
  • 如果学生/课程表中有学生/课程,则删除学生/课程时会遇到问题(违反外键)

通常:您不希望这样。

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

要在List <>字段和数据库中的连接表之间建立实际的关联,您需要配置映射(ORM用于弥合数据库架构和实体之间的鸿沟的配置)。

2020-11-26