gpt4 book ai didi

java - 如何使用注释保存将列表作为值的 map ?

转载 作者:行者123 更新时间:2023-11-29 16:06:47 25 4
gpt4 key购买 nike

我有三个模型类:学生、工作场所、周,我尝试坚持使用 Annotations 。每个学生每周可以有多个工作场所,因此学生类(class)有一个字段 Map<Week, List<Workplace>> 。但我没有找到将其映射到数据库的解决方案。

我确实设法坚持了 @ManyToMany学生和工作场所之间的关系使用JoinTable将 Student_id、Workplace_id 和 Week_id 作为 DB 表中的列,但映射的只是一个字段 Map<Week, Workplace>在类(class)学生中。

以下是带有 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
}
@Entity
public class Week {
@Id
private String week_year;
@ManyToMany(mappedBy="studentsWorkplaces")
private List<Student> students;
@ManyToMany(mappedBy="studentsWorkplaces")
private List<Workplace> workplaces;
// Getters, Setters
}

感谢您的帮助!

最佳答案

没有 JPA 不支持这一点。请参阅此文档 https://en.wikibooks.org/wiki/Java_Persistence/Relationships#Nested_Collections.2C_Maps_and_Matrices这解释了原因。

并且已经在这个问题中提出并回答了I want to map a Map<Long, List<POJO>> through JPA

关于java - 如何使用注释保存将列表作为值的 map ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55669656/

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