我在业余时间从事Java
项目,
我开始使用JPA 2.1
并学习使用annotations
我有一个名为Schedule
的类,我想包含这个字段:
private HashMap<LocalDate, ArrayList<Lesson>> theLessons
Lesson是我的数据库中的另一个实体,LocalDate是Java类
这可能吗?
我尝试将@OneToMany和@MapKey组合在How do you map a "Map" in hibernate using annotations?中
但没有效果。
我想也许我需要创建其他Entities
来促进这一点,例如ListOfLessons
,它将包含ArrayList<Lesson>
,以便将HashMap
缩短为:
private HashMap<LocalDate, ListOfLessons>
欢迎任何帮助
答案 0 :(得分:1)
只需创建一个中间体&#34;实体&#34;并且有一张地图(正如你所假设的那样),你会在任何体面的JPA文档中找到它。
答案 1 :(得分:0)
我所做的似乎工作正常:
@Entity
public class Schedule implements Serializable {
....
@OneToMany
@MapKey(name = "theDate")
private Map<LocalDate, ListOfLessons> allLessons = new HashMap<>();
....
}
@Entity
public class ListOfLessons implements Serializable {
...
private LocalDate theDate;
@OneToMany
private List<Lesson> allLessons = new ArrayList<>();
...
}
请注意ListOfLessons
&#39;名为theDate
的字段用作班级Schedule
中的地图密钥