我有三个模型班,学生班,工作场所班,周班,我尝试使用Annotations
坚持下去。每个学生每周可以有多个工作场所,因此,学生班级有一个字段Map<Week, List<Workplace>>
。但是我找不到将其映射到数据库中的解决方案。
我确实使用@ManyToMany
并在DB表中将Student_id,Workplace_id和Week_id作为列来保持了JoinTable
与学生和工作场所之间的关系,但是映射的只是字段{{1} }在班级的学生中。
这是我上次尝试使用的Map<Week, Workplace>
的简化模型类。我得到的错误是Annotations
。
Use of @OneToMany or @ManyToMany targeting an unmapped class: model.Student.studentsWorkplaces[java.util.List]
@Entity
public class Student {
@Id
private Integer id;
@ManyToMany
@JoinTable(name = "STUDENTS_WORKPLACES",
joinColumns = @JoinColumn(name = "STUDENT"),
inverseJoinColumns = @JoinColumn(name = "WEEK"))
@MapKeyJoinColumn(name = "WORKPLACE")
private Map<Week, List<Workplace>> studentsWorkplaces;
// Getters, Setters
}
@Entity
public class Workplace {
@Id
private Integer id;
@ManyToMany(mappedBy="studentsWorkplaces")
private Map<Week, Student> workplaceStudents;
// Getters, Setters
}
感谢您的帮助!
答案 0 :(得分:0)
没有JPA不支持。请参阅此文档https://en.wikibooks.org/wiki/Java_Persistence/Relationships#Nested_Collections.2C_Maps_and_Matrices,其中解释了原因。
中被问及回答了