尝试将 Map<Integer, List<Object>> 映射到 postgreSQL JPA 数据库

问题描述 投票:0回答:1
  • 我正在尝试创建一个学生地图,其键是周期编号,值为该周期的所有学生的列表。
  • 学生对象被标记为实体。
    @OneToMany(cascade = CascadeType.ALL)
    @MapKey(name = "period")
    @JoinColumn(name = "teacher_id")
    private Map<Integer, List<Student>> students;

我也向学生尝试了所有这些变体,但是当我尝试运行该程序时。它显示程序在创建数据库模式时遇到问题。

此索引由周期 - 1 组成。

    @ElementCollection
    @CollectionTable(name = "student_lists")
    @Column(name = "student_list")
    private List<List<Student>> students;

这是我尝试将列表放入列表时遇到的主要错误: 创建类路径资源 [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class] 中定义的名称为“entityManagerFactory”的 bean 时出错:关联“com.tracer.model.Teacher.studentsByPeriod”的目标类型为“java.util” .List' 不是“@Entity”类型

目前我创建了一个单独的实体 CustomStudentList 来存储学生列表:List>。但我想用地图代替。

我尝试了不同的变化。并找到了 CustomStudentList,它可以工作,但并不理想。

java postgresql spring-boot jpa database-schema
1个回答
0
投票

您需要利用 JPA 属性转换器。检查一下以供参考。

如何将 Map> 从 JSON 映射到 JPA?

© www.soinside.com 2019 - 2024. All rights reserved.