Java 生成的@ManyToMany联接表的JPA自动增量id
如果两个实体(即Java 生成的@ManyToMany联接表的JPA自动增量id,java,jpa,many-to-many,composite-key,Java,Jpa,Many To Many,Composite Key,如果两个实体(即Student和Course)之间存在双向@manytomy关系,JPA将生成一个联接表Student\u id\u Course\u id,其复合主键为(Student\u id,Course\u id)。一切正常 但是,如果我有一大堆其他的表可以使用该键,例如,course\u assessment和course\u result,看起来像这样: course_assessment student_id course_id assessment_item_desc
Student
和Course
)之间存在双向@manytomy关系,JPA将生成一个联接表Student\u id\u Course\u id
,其复合主键为(Student\u id,Course\u id)
。一切正常
但是,如果我有一大堆其他的表可以使用该键,例如,course\u assessment
和course\u result
,看起来像这样:
course_assessment
student_id
course_id
assessment_item_description
grade
course_result
student_id
course_id
overall_grade
我不想通过这些表增加复合键(学生id,课程id)
。我希望student\u id\u course\u id
有一个自动递增id,然后在course\u评估
和course\u结果
表中使用
这在JPA中似乎是一个相当常见的场景,但我还没有找到如何做到这一点。其他人通常是如何做到这一点的?这种情况实际上非常罕见,因为如果您需要表格引用用户注册到课程的事实(我称之为“注册”),那么这可能意味着此注册是一个实体,包含信息 因此,多对多关系成为两个一对多关系:
- 一个学生有许多注册
- 一门课程有许多注册