Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 生成的@ManyToMany联接表的JPA自动增量id_Java_Jpa_Many To Many_Composite Key - Fatal编程技术网

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中似乎是一个相当常见的场景,但我还没有找到如何做到这一点。其他人通常是如何做到这一点的?

这种情况实际上非常罕见,因为如果您需要表格引用用户注册到课程的事实(我称之为“注册”),那么这可能意味着此注册是一个实体,包含信息

因此,多对多关系成为两个一对多关系:

  • 一个学生有许多注册
  • 一门课程有许多注册
注册实体可用于保存信息(注册日期,…),您可能会有其他实体使用自动生成ID的外键引用注册