如果我在两个实体(即Student
和Course
)之间存在双向@ManyToMany关系,JPA会生成一个连接表student_id_course_id
,其复合主键为{{1 }}。一切正常。
但是如果我有一大堆其他表可以解决这个问题,例如(student_id, course_id)
和course_assessment
,那会是这样的:
course_result
我不希望通过这些表扩散复合键course_assessment
student_id
course_id
assessment_item_description
grade
course_result
student_id
course_id
overall_grade
。我希望(student_id, course_id)
有一个auto_increment id,然后在student_id_course_id
和course_assessment
表中使用它。
这似乎是JPA中相当常见的情况,但我无法找到如何做到这一点。其他人通常如何处理这个问题?
答案 0 :(得分:0)
这种情况实际上非常罕见,因为如果您需要让表引用用户注册到课程的事实(我称之为“注册”),那么这可能意味着此注册是实体,持有信息。
因此,多对多关系成为两个一对多的关系:
注册实体可用于保存信息(注册日期......),您可以使用其自动生成ID的外键引用注册的其他实体。