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键冲突)
私人学生名单代码>在你的课程
实体中(实体在这里比bean、imho更好),和/或私人列表课程代码>在学生
实体中
要在列表字段和数据库中的连接表之间建立实际关联,您需要配置映射(ORM用于弥合数据库架构和实体之间差距的配置)。您会遇到什么问题:
- 你将无法看到学生课程协会
- 您将无法从课程导航到课程中的学生(反之亦然)
- 如果学生/课程在StudentCourse表中,则删除该学生/课程时会遇到问题(foregin键冲突)
一般来说:你不想这样
可能的解决方案:使用ORM系统,如Hibernate、EclipseLink或OpenJPA。然后你可以有一个私人学生名单代码>在你的课程
实体中(实体在这里比bean、imho更好),和/或私人列表课程代码>在学生
实体中
要在列表字段和数据库中的连接表之间建立实际关联,您需要配置映射(ORM用于弥合数据库架构和实体之间的差距的配置)。
这可能对你有用。因为几天前我有类似的问题。
这可能对你有用。几天前我遇到了类似的问题。如何映射代码中的两个实体?如何映射代码中的两个实体?