我有一个带有字段的 Hibernate 注释实体:
@OneToMany(mappedBy="templateInstance", fetch = FetchType.EAGER)
@MapKey(name = "attributeName")
private Map<String, Component> components;
Hibernate 以此为基础创建了一个 PersistentMap。然后我希望 Dozer 将其映射到具有这样一个字段的对象:
private Map<String, ComponentDto> components;
在进行了 LazyInitializationExceptions 和一些调试之后,我发现这不是关闭 Hibernate 会话的问题,而是 Dozer 尝试不映射到 HashMap 而是映射到 PersistentMap!因此,当 Dozer 访问目标地图时,PersistentMap 会抛出异常,因为它当然没有会话。
所以,我认为 Dozer 的意图行为是映射到 HashMap。现在的问题是:我做错了什么还是推土机,我怎样才能让推土机将 PersistentMap 映射到普通的 Java 标准地图?
我以前使用 List 时没有问题。有没有其他人使用 Dozer 来映射 Hibernate PersistentMap?
问候, Konsumierer