Java 多对多关系中的模型结构

Java 多对多关系中的模型结构,java,model-view-controller,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
-------
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
}


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

您会遇到什么样的问题:

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

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

StudentCourse
-------------
StudentId (Foreign Key -> Student)
CourseId (Foreign Key -> Course)
  • 你将无法看到学生课程协会
  • 您将无法从课程导航到课程中的学生(反之亦然)
  • 如果学生/课程在StudentCourse表中,则删除该学生/课程时会遇到问题(foregin键冲突)
一般来说:你不想这样

可能的解决方案:使用ORM系统,如Hibernate、EclipseLink或OpenJPA。然后你可以有一个
私人学生名单在你的
课程
实体中(实体在这里比bean、imho更好),和/或
私人列表课程
学生
实体中


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

您会遇到什么问题:

  • 你将无法看到学生课程协会
  • 您将无法从课程导航到课程中的学生(反之亦然)
  • 如果学生/课程在StudentCourse表中,则删除该学生/课程时会遇到问题(foregin键冲突)
一般来说:你不想这样

可能的解决方案:使用ORM系统,如Hibernate、EclipseLink或OpenJPA。然后你可以有一个
私人学生名单在你的
课程
实体中(实体在这里比bean、imho更好),和/或
私人列表课程
学生
实体中

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

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


这可能对你有用。几天前我遇到了类似的问题。

如何映射代码中的两个实体?如何映射代码中的两个实体?