例如,如果我的数据库中有以下表格,并且学生和类(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
}
和
public class Course
{
private int ID;
pirvate String title;
//getter and setter
}
所以我的问题是如果我只创建这两个 bean 我会遇到什么样的问题?我会遇到什么样的问题以及在什么情况下?请为这种多对多关系指定正确的 bean 结构。
最佳答案
你会遇到什么问题:
- 您将看不到学生 - 类(class)关联
- 您将无法从类(class)导航到类(class)中的学生(反之亦然)
- 如果学生/类(class)在 StudentCourse 表中(违反外键),您将无法删除它
通常:您不希望这样。
可能的解决方案:使用 ORM 系统,例如 Hibernate、EclipseLink 或 OpenJPA。然后你可以有一个private List<Student> students;
在你的Course
实体(实体在这里比 bean 更好,恕我直言),和/或 private List<Course> courses;
在Student
实体。
要在 List<> 字段和数据库中的连接表之间建立实际关联,您需要配置映射(这是 ORM 用来弥合数据库模式和实体之间差距的配置)。
关于java - 多对多关系中的模型结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14219954/