gpt4 book ai didi

java - Hibernate通过java注释将java中的嵌套集合映射到映射表?

转载 作者:行者123 更新时间:2023-11-30 05:09:47 26 4
gpt4 key购买 nike

我在使用 java 注释编写 hibernate 映射来解决下面给出的问题时遇到困难。

问题:

表格

Table:Courses_Teacherscolumns:idcourse_idteacher_idyear(academic year)
Table: Courses_Studentscolumns:idcourse_idstudent_idyear(academic year)
Table: Courses_Teachers_Studentscourse_teacher_idcourse_student_id 

Classes

class Student {
Map<Course,List<Teacher>> courseTeachersMap;
}

要求

  • 一门类(class)可由多名教师向同一学生小组教授。
  • 类(class)被分配给一个年级。
  • 一个年级可以有多个学生小组,他们的类(class)分配有不同的教师组。

请建议我如何为类(class)学生中的 courseTeachersMap 属性指定注释。

最佳答案

可以映射 ManyToMany使用 Map 进行关联,这种映射的典型用例是当您有三元关联时。例如,如果您有:

STUDENT_TEACHER_COURSESTUDENT_ID(FK, PK)TEACHER_ID(FK, PK)COURSE_ID (FK, PK)

Then you could define the following mapping (assuming you're using a Hibernate Annotations < 3.5):

@Entity
public class Student {
...
@ManyToMany
@JoinTable(
name="STUDENT_TEACHER_COURSE",
joinColumns= { @JoinColumn(name="STUDENT_ID") },
inverseJoinColumns= { @JoinColumn(name="TEACHER_ID") }
)
@MapKeyManyToMany(joinColumns = @JoinColumn(name="COURSE_ID",unique = false))
protected Map<Course,Teacher> teachers ;
...
}

但是我认为你不能有一个“嵌套”List<Teacher>作为 Map 内的值,我不认为 Hibernate 可以映射它,我会考虑获取 List相反,来自实体。

引用文献

资源

关于java - Hibernate通过java注释将java中的嵌套集合映射到映射表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3846767/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com